Small Basic: How to Convert Multi-Line Text into an 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
See Also
The program listed above doesn't work properly in remote. Following article shows the workaround for that issue.