Mit INP liest man einzelne Bytes, mit INPUT Zeilen bis zum
nächsten Komma, und mit LINE INPUT komplette Zeilen ein. Das Problem:
INPUT kann zwar lange Zeichenketten einlesen, bricht aber nicht nur beim
Zeilenende, sondern eben auch bei einem Komma ab (Trennzeichen für einen neuen Wert).
LINE INPUT liest auch CSV-Daten zeilenweise ein, aber die Zeile darf
nicht länger als 254 Zeichen sein.
Das "erweiterte LINE INPUT" ist genauso anzuwenden wie das Original, lädt aber
eine Zeile bis zum tatsächlichen Zeilenende ein (jedenfalls bis zur maximalen
String-Länge von 32767 Bytes - für noch längere Zeilen kann man angeben,
ob der Rest der Zeile ignoriert werden, oder ob er mit dem nächsten Durchgang
geholt werden soll).
Die enthaltenen Funktionen:
line_input$(channel&,ignore!) Hole Zeile vom Dateikanal channel.
Ist die Zeile länger als eine String-Variable lang sein darf, so wird mit
ignore! festgelegt, wie der Rest der Zeile behandelt werden soll. Beispiel:
zeile$=@line_input$(1,TRUE) (Zeilen werden nach dem 32767. Byte abgeschnitten)
zeile$=@line_input$(1,FALSE) (ein nach dem 32767. Byte vorhandener Zeilen-Rest bleibt zum Einlesen erhalten)
Das gleiche Beispiel mit der Original-Syntax:
LINE INPUT #1,zeile$
Benötigte Unterroutine: eof() (verbesserte Version des eingebauten
EOF(), der aber - insbesondere auf einigen ST-Emulatoren - nicht korrekt
funktioniert)