Syntax: WRITE #f, Printausdruck
Typ: Anweisung
Kategorie: Datei
WRITE # funktioniert wie WRITE (Anweisung), leitet aber die Ausgabe in eine zuvor mit OPEN geöffnete Datei um; die Datei muss in einem sequentiellen Ausgabemodus (OUTPUT, APPEND) oder im Modus BINARY geöffnet sein. Der Vorteil gegenüber PRINT # ist, dass durch die spezielle Formatierung mehrere Datensätze pro Zeile geschrieben werden können; einen Datensatz kann man per INPUT # wieder auslesen. Der verwendbare Zeichensatz ist bei WRITE # jedoch eingeschränkt, zumindest, wenn die Datei im Anschluss wieder mit INPUT # gelesen werden soll; "Anführungszeichen" dürfen nicht verwendet werden.
Beispiel:
DIM Tmp AS STRING, nr AS INTEGER
nr = FREEFIlE
OPEN "Adressen.txt" FOR APPEND AS #nr
WRITE #nr, "Karl Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #nr, "Eva Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #nr, "Andrea Müller", "12346", "Unterhausen", "Wendeweg 17"
CLOSE #nr
OPEN "Adressen.txt" FOR INPUT AS #nr
DO
FOR Satz As Integer = 1 TO 4
INPUT #nr, tmp
PRINT tmp; " ";
NEXT
PRINT
LOOP UNTIL EOF(nr)
SLEEP
So wie sich die Datensätze in einer Zeile schreiben lassen, können sie natürlich auch mit einer Zeile wieder eingelesen werden. Dazu dient dann aber die Anweisung LINE INPUT #, wie das folgende Beispiel zeigt:
Dim AS STRING tmp, dateiname="Adressen.txt"
Dim As Integer nr=FREEFILE
OPEN dateiname FOR Output AS #nr
WRITE #nr, "Karl Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #nr, "Eva Mustermann", "12345", "Oberhausen", "Rottstraße 2"
WRITE #nr, "Andrea Müller", "12346", "Unterhausen", "Wendeweg 17"
CLOSE #nr
OPEN dateiname FOR INPUT AS #nr
DO
Line Input #nr, tmp
PRINT tmp
LOOP UNTIL EOF(nr)
Sleep
Bei dieser Variante müssen die einzelnen Strings bei Bedarf anhand der Trennzeichen wieder aufgeteilt werden.
Siehe auch:
OPEN (Anweisung), PRINT #, INPUT #, LINE INPUT #, ACCESS, Dateien (Files)