Retrieves one or more characters from the specified position in a string.

[v1.0.46+]: Deprecated: This command is not recommended for use in new scripts. Use the SubStr function instead.

StringMid, OutputVar, InputVar, StartChar , Count, L



The name of the output variable in which to store the substring extracted from InputVar.


The name of the input variable from whose contents the substring will be extracted. Do not enclose the name in percent signs unless you want the contents of the variable to be used as the name.


The position of the first character to be extracted, which can be an expression. Unlike StringGetPos, 1 is the first character. If StartChar is less than 1, it will be assumed to be 1. If StartChar is beyond the end of the string, OutputVar is made empty (blank).


[v1.0.43.10+]: If blank or omitted, this is the same as specifying an integer large enough to retrieve all characters from the string.

Otherwise, specify the number of characters to extract, which can be an expression. If Count is less than or equal to zero, OutputVar will be made empty (blank). If Count exceeds the length of InputVar measured from StartChar, OutputVar will be set equal to the entirety of InputVar starting at StartChar.


If blank or omitted, characters that lie to the right of StartChar will be extracted. Otherwise, specify the letter L to extract characters that lie to the left of StartChar. In the following example, OutputVar will be set to "Red":

InputVar := "The Red Fox"
StringMid, OutputVar, InputVar, 7, 3, L

If the L option is present and StartChar is less than 1, OutputVar will be made blank. If StartChar is beyond the length of InputVar, only those characters within reach of Count will be extracted. For example, the below will set OutputVar to "Fox":

InputVar := "The Red Fox"
StringMid, OutputVar, InputVar, 14, 6, L


For this and all other commands, OutputVar is allowed to be the same variable as InputVar.

SubStr(), StringLeft, StringRight, StringTrimLeft, StringTrimRight, IfInString, StringGetPos, StringLen, StringLower, StringUpper, StringReplace


Retrieves a substring with a length of 4 characters at position 7.

Source := "Hello this is a test."
StringMid, the_word_this, Source, 7, 4