Small Basic: How to Convert Multi-Line Text into an Array of Lines - Featured Article
Today's featured TechNet Wiki article is from Nonki Takahashi:
Small Basic: How to Convert Multi-Line Text into Array of Lines
Small Basic can get multi-line text into a variable from multi-line input text box with Controls.GetTextBoxText() or from text file with File.ReadContents().
The following sample code shows how to convert a multi-line text into an array of lines.
CRLF ``= ``Text``.``GetCharacter``(``13``) ``+ ``Text``.``GetCharacter``(``10``)
GraphicsWindow``.``BackgroundColor ``= ``"LightGray"
GraphicsWindow``.``BrushColor ``= ``"Black"
gw ``= ``GraphicsWindow``.``Width
gh ``= ``GraphicsWindow``.``Height
tb ``= ``Controls``.``AddMultiLineTextBox``(``0``, ``0``)
Controls``.``SetSize``(``tb``, ``gw``, ``gh ``- ``30``)
Controls``.``AddButton``(``"Enter"``, ``gw ``- ``50``, ``gh ``- ``30``)
Controls``.``ButtonClicked ``= ``OnButtonClicked
Sub ``OnButtonClicked
``buf ``= ``Controls``.``GetTextBoxText``(``tb``)
``ConvertTextToLines``(``)
``ShowLines``(``)
EndSub
Sub ``ConvertTextToLines
``len ``= ``Text``.``GetLength``(``buf``)
``nLines ``= ``0
``ptr ``= ``1
``While ``ptr ``<``= ``len
``eol ``= ``Text``.``GetIndexOf``(``Text``.``GetSubTextToEnd``(``buf``, ``ptr``)``, ``CRLF``)
``If ``eol ``= ``0 ``Then ``' eol not found
``nLines ``= ``nLines ``+ ``1
``lines``[``nLines``] ``= ``Text``.``GetSubTextToEnd``(``buf``, ``ptr``)
``ptr ``= ``len ``+ ``1
``Else ``' eol found
``nLines ``= ``nLines ``+ ``1
``lines``[``nLines``] ``= ``Text``.``GetSubText``(``buf``, ``ptr``, ``eol ``- ``1``)
``ptr ``= ``ptr ``+ ``eol ``+ ``1
``EndIf
``EndWhile
EndSub
Sub ``ShowLines
``For ``i ``= ``1 ``To ``nLines
``TextWindow``.``WriteLine``(``"lines[" ``+ ``i ``+ ``"]: " ``+ ``lines``[``i``]``)
``EndFor
EndSub
Read the latest version of this TechNet Wiki article with an improved code block snippet here:
Small Basic: How to Convert Multi-Line Text into Array of Lines
Thanks again to Nonki for this great contribution!
- Ninja Ed