Small Basic peut obtenir un texte multiligne dans une variable depuis une zone de texte multiligne avec Controls.GetTextBoxText() ou depuis un fichier texte lu avec File.ReadContents().  L'exemple de code suivant montre comment convertir un texte multiligne en tableau de lignes.

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("Entrer", 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 ' fin de ligne non trouvée
      nLines = nLines + 1
      lines[nLines] = Text.GetSubTextToEnd(buf, ptr)
      ptr = len + 1
    Else ' fin de ligne trouvée
      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

Voir Aussi

Le programme précédent ne fonctionne pas correctement en distant. Lire l'article suivant pour voir la méthode de contournement pour ce problème.

Small Basic Known Issue: 23589 - Controls.GetTextBoxText() Returns CR+LF as Newline from Multi-Line Text Box in Local but CR in Remote

Autres Langues