Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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.