| Home Page | Recent Changes | Preferences

# Nomad/WUtils

What is wUtils?

## wString

### InStrPlus()

    static final function int InStrPlus( coerce string HayStack, coerce string Needle, optional int Start )
    {
         local int i;

         for ( i = Start; i < Len( HayStack ); i++ )
              if ( Mid( HayStack, i, 1 ) == Needle )
                   break;

         return i;
    }

Mychaeel: I'm afraid this is a very slow and inefficient way to implement this function; besides, it'll only search for single-character "Needle"s. Better do something like InStrFrom on UT2003/Suggestions.

nomad: Your version is a lot better, this is something I used in Deus Ex ages ago.

### ReplaceOption()

nomad: Not sure wheather or not this should be added to wUtils. It allows you to quickly change a value in the Options string used in Login and PostLogin.

    static function bool ReplaceOption( out string Options, string Key, string NewValue, optional out string OldValue, optional bool bAddIfMissing )
    {
         local array<string> OptionsArray;
         local int i;
         local string   CurrentKey, CurrentValue;
         local bool     bReplaced;
         bReplaced = false;

         // Need to strip the first ? from Options otherwise Split doesn't work
         if ( Left( Options, 1 ) == "?" )
              Options = Right( Options, Len( Options ) - 1 );

         Split( Options, "?", OptionsArray );

         for ( i = 0; i < OptionsArray.Length; i++ ) {
              Divide( OptionsArray[i], "=", CurrentKey, CurrentValue );

              if ( CurrentKey ~= Key ) {
                   OldValue = CurrentValue;
                   OptionsArray[i] = CurrentKey$"="$NewValue;
                   bReplaced = true;
                   log( "ReplaceOption() :: Replaced ["$CurrentKey$"] Old = "$OldValue$", new = "$NewValue, 'wUtils' );
              }
         }

         if ( !bReplaced && bAddIfMissing )
              OptionsArray[OptionsArray.Length] = Key$"="$NewValue;

         Options = "?"$Join( OptionsArray, "?", Options );
         return bReplaced;
    }

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

Mapping Topics

Mapping Lessons

UnrealEd Interface

Questions&Answers

Scripting Topics

Scripting Lessons

Making Mods

Class Tree

Questions&Answers

Modeling Topics

Questions&Answers

Log In