This article covers the basics of text manipulation in Small Basic using the Text object.
Text is a series of characters, often called a string in computing. A string can be a constant (or literal) enclosed within a set of double quotes, or a variable can be assigned to hold a string.
Above, txt is a variable that contains the string literal "Hello World".
As stated, the string contains a set or characters, in the example above there are 11 characters, 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l' and 'd'.
A string can also be a series of numbers such as "3.14159", or even contain special characters like backspace, newline, '♥' or even a system beep. These are not to be confused with the different representations of the characters that different fonts can
provide, including different language fonts like the symbol font.
Each character is identified internally by a 'character code' or number, often called ASCII or UNICODE number.
We often want to form one string from others or query a string to see what it contains.
The following is a brief summary of the Small Basic Text object methods with some simple examples.
Returns the number or characters in the input string.
The empty string "" has a special meaning in Small Basic. It represents a variable that has not been set, and in fact an array or one of its elements is deleted by setting it to "". We cannot therefore have an array element that is the empty string "".
Joins or concatenates two strings. We can also use + to join two strings in general. However, if the strings are actually numbers, then + would add them numerically rather than join the strings.
This is very straight forward, simply creates a copy of the input string converting the case.
This can be very useful for comparing the equivalence of strings in a case insenstive way. If we convert both to the same case (say lower) and test if they are equal then the case of the original things is effectively ignored.
"Enter a name"
Create a copy of the input string, with all characters converted to lower case.
Create a copy of the input string, with all characters converted to upper (or capital) case.
Character codes can be useful to:
"Enter a phrase"
"The capital letters in your input
The special character codes for a carriage return (10) and line feed (13) can be useful. These terms relate to manual typewriters; they are sometimes used separately and sometimes combine to form a newline.
Get a character from an input character code.
Get the character code for an input character.
The following commands manipulate sub-strings within larger strings.
Finds if a string ends with a set of characters, returns "True" or "False".
'We have found a txt file
Note that "True" and "False" are special strings in Small Basic that represent a true or false state and can be used directly in If or While statements.
'An infinite loop
Finds if a string starts with a set of characters, returns "True" or "False".
The final set of Text methods allow us to find and manipulate sub strings.
'A simple find and replace
"This is my test text, it contains text that has 3 instances of the word text."
' A working copy
'The text to find
'The text to replace with
'The result of the find and replace
' The next occurence of our search text
'The text before our search text
'Add the replace text
'The text after our search text
'The next occurence of our next search text
'The final text after our search text (if any).
Find the index (or character from the start) of the start of one string in another. This returns 0, if the string is not found.
This gets a sub text of the input string starting at a given index and extracting a defined number of characters.
This gets a sub text of the input string starting at a given index and extracting all of the string from this point to the end.
The checks if a sub string is present anywhere within the input string, returns "True" or "False". This is similar to GetIndexOf returning a value > 0.