UserGuide - String Manipulation

The following example shows step by step the different commands of the string library - their purpose and their correct use.
  Define.s String1, String2, String3
  
  String1 = "The quick brown fox jumps over the lazy dog."
  
  ; Left returns a number of characters from the left hand end of a string.
  ; Mid returns a number of characters from the given start location in the middle of a string.
  ; Right returns a number of characters from the right hand end of a string.
  ; Space returns the specified number of space characters as a string.
  ; Shows "The brown dog."
  Debug "* Left, Mid and Right"
  String2 = Left(String1, 3) + Space(1) + Mid(String1, 11, 5) + Space(1) + Right(String1, 4)
  Debug String2
  
  ; CountString returns the number of instances of the second string in the first string, it is case sensitive.
  ; Shows 1.
  Debug "* CountString"
  Debug CountString(String1, "the")
  
  ; However the LCase (and UCase) functions can be used to switch a string to all lower (or upper) case
  ; Shows 2
  Debug "* CountString and LCase"
  String2 = LCase(String1)
  Debug CountString(String2, "the")
  
  ; FindString can be used to find the location of one string within another.
  ; Shows 17.
  Debug "* FindString"
  Debug FindString(String1, "fox")
  
  ; RemoveString can be used to remove one string from within another.
  ; Shows The quick fox jumps over the lazy dog.
  Debug "* RemoveString"
  String2 = RemoveString(String1, " brown")
  Debug String2
  
  ; ReplaceString can be used to change the occurrence of a substring within another string.
  ; Shows The quick brown fox jumps over the sleeping dog.
  Debug "* ReplaceString"
  String2 = ReplaceString(String1, "lazy", "sleeping")
  Debug String2
  
  ; StringByteLength returns the length of a string in bytes in the specified format, or the current default
  ; if one is not specified (excluding the terminating null).
  Debug "* StringByteLength"
  ; Shows 44.
  Debug StringByteLength(String1, #PB_Ascii)
  ; Shows 88.
  Debug StringByteLength(String1, #PB_Unicode)
  
  ; StringField can be used to obtain an indexed substring from a target string. 
  ; Useful for converting strings to lists for example.
  ; StringField will work with space as a delimiter too 
  ; but hopefully this example makes the functions behaviour more apparent.
  ; Shows jumps.
  Debug "* StringField"
  String2 = ReplaceString(String1, " ", "\")
  Debug String2
  String3 = StringField(String2, 5, "\")
  Debug String3
  
  ; Trim removes white space characters from the start and end of a given string.
  ; Similarly, LTrim acts on the left hand end (start) of a string and RTrim the right hand end.
  Debug "* Trim, LTrim and RTrim"
  String2 = Space(10) + String1 + Space(8)
  Debug #DQUOTE$ + String2 + #DQUOTE$
  String3 = Trim(String2)
  Debug #DQUOTE$ + String3 + #DQUOTE$
  String3 = LTrim(String2)
  Debug #DQUOTE$ + String3 + #DQUOTE$
  String3 = RTrim(String2)
  Debug #DQUOTE$ + String3 + #DQUOTE$
  
  ; LSet sets a string to be a specific length from the left hand end, padding with spaces, 
  ; or other specified character, as necessary.
  ; If the string is already longer than the specified length it will be truncated.
  Debug "*LSet"
  Debug LSet("Abc", 10, "*")
  Debug LSet("Abcd", 10, "*")
  Debug LSet("Abcde", 10, "*")
  
  ; Similarly RSet pads a string from its right hand end.
  Debug "* RSet"
  Debug RSet("1.23", 10, "0")
  Debug RSet("10.23", 10, "0")
  Debug RSet("100.23", 10, "0")
  
  ; Str converts a signed quad value to a string, similarly StrF converts floats, 
  ; StrD converts doubles and StrU converts unsigned values, these two function have an optional 
  ; parameter to specify the number of decimal places to show.
  Debug "* Str, StrF and StrD"
  Debug Str(100)
  Debug StrF(1.234, 3)
  Debug StrD(123456.789, 3)
  
  ; Val will convert a string value into its numeric (quad) equivalent.
  ; ValD and ValF perform the same function for floats and doubles.
  Debug "* Val"
  Debug Val("123")
  
  ; Bin will convert a numeric value into its binary equivalent.
  ; Hex will convert one into its hexadecimal equivalent.
  Debug "* Bin and Hex"
  Debug Bin(19)
  Debug Hex(19)

UserGuide Navigation

< Previous: Loops | Overview | Next: Storing data in memory >