Coding-Schatzkästlein
Kleine Tips & Scripts zum Webdesign
Start > GfA-Basic > Erweitertes LINE INPUT

GfA-Basic: Erweitertes "LINE INPUT"

Zusammenfassung

Name:  XLine Input
Aufgabe:  Funktion zum Einlesen überlanger Textzeilen ohne Unterbrechung.
Benötigt:  GfA-Basic
Beispiel:  zeile$=@line_input$(1,TRUE)
Download:  xlineinp.lst

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)

Der externe Quellcode: xlineinp.lst

Kurz-URL dieses Artikels: http://Coding.binon.net/XLineInput