16. Klasse TEXTFILE

16.1. Allgemeines

Mit den Methoden der Klasse TEXTFILE kann auf eine oder mehrere Textdateien zugegriffen werden. Die Klasse TEXTFILE muss nicht mit |LOAD geladen werden.

16.2. Lesen von Textfiles

MethodeTEXTFILE.OPEN [s filename][i fileid, b status]
BeschreibungDie Methode TEXTFILE.OPEN öffnet ein bestehendes Textfile für den Lesezugriff. In <fileid> wird, falls das Textfile geöffnet werden konnte, ein Filehandle zurückgeliefert.
Beispiel
IF 'test.dat' TEXTFILE.OPEN THEN
   => VAR.F1
ELSE
   MESSAGE 'unable to open textfile'
   HALT
END_IF
MethodeTEXTFILE.READLN [i filedid][s line, b status]
BeschreibungLiest eine Zeile aus File <fileid> und gibt das Resultat in <line> zurück.
Beispiel
WHILE VAR.F1 TEXTFILE.READLN DO
   DISPLAY $
END_WHILE
MethodeTEXTFILE.READ_OBJECT [i filedid][* obj, b status]
BeschreibungLiest ein Objekt aus der Textdatei. Die Objekte müssen vorher mit TEXTFILE.WRITE_OBJECT in die Textdatei geschrieben worden sein.
Beispiel
WHILE VAR.F1 TEXTFILE.READ_OBJECT DO
   DISP
END_WHILE

16.3. Erzeugen von Textfiles

MethodeTEXTFILE.CREATE [s filename][i fileid, b status]
BeschreibungErzeugt ein neues Textfile mit Namen <filename>. In <fileid> wird ein Filehandle auf die erzeugte Datei zurückgegeben.
Beispiel
IF 'test.dat' TEXTFILE.CREATE THEN
   => VAR.F1
ELSE
   DISPLAY ‘unable to create textfile’
END_IF
MethodeTEXTFILE.WRITE [i fileid,s buffer][]
BeschreibungSchreibt den Buffer <buffer> auf das File <fileid>. Das File muss mit TEXTFILE.CREATE erzeugt worden sein.
Beispiel
VAR.F1 'hello, World' TEXTFILE.WRITE
MethodeTEXTFILE.WRITELN [i fileid,s buffer][]
BeschreibungSchreibt den Buffer <buffer> auf das File <fileid>. Am Ende von <buffer> wird ein Newline Zeichen in das File geschrieben. Das File muss mit TEXTFILE.CREATE erzeugt worden sein.
Beispiel
VAR.F1 'hello, World' TEXTFILE.WRITELN
MethodeTEXTFILE.WRITE_OBJECT [i fileid,* obj][]
BeschreibungSchreibt das Objekt <obj> in das File <fileid>. Die Objekte werden in einem speziellen Format in die Textdatei geschrieben, so dass sie mit TEXTFILE.READ_OBJECT wieder gelesen werden können. Achtung: Die Methode TEXTFILE.WRITE_OBJECT sollte nicht für die längerfristige Archivierung von Objekten benutzt werden, da das Speicherformat in Zukunft ändern könnte.
Beispiel
VAR.F1 &IN TEXTFILE.WRITE_OBJECT
MethodeSERIAL.SAVE_OBJECT [s filename,* obj][b status]
BeschreibungSchreibt das Objekt <obj> in das Textfile <filename> im GeoShop Serial-Format. Es kann nur ein einziges Objekt in die Datei <filename> geschrieben werden.
Beispiel
IF 'test.usr' &USER SERIAL.WRITE_OBJECT NOT THEN
   ERROR 'unable to save object to file test.usr'
END_IF
MethodeSERIAL.WRITE_OBJECT [i fileid,* obj][b status]
BeschreibungSchreibt das Objekt <obj> in das Textfile <fileid> im GeoShop Serial-Format.
Beispiel
IF VAR.F1 &USER SERIAL.WRITE_OBJECT NOT THEN
   ERROR 'unable to save object to file test.usr'
END_IF
MethodeTEXTFILE.OPEN_APPEND [s filename][i fileid, b status]
BeschreibungDie Methode TEXTFILE.OPEN_APPEND öffnet ein bestehendes Textfile für den Schreibzugriff am Ende des Files. In <fileid> wird, falls das Textfile geöffnet werden konnte, ein Filehandle zurückgeliefert.
Beispiel
IF 'test.dat' TEXTFILE.OPEN_APPEND THEN
   => VAR.F1
ELSE
   DISPLAY 'unable to open to append textfile'
   HALT
END_IF

16.4. Schliessen von Textfiles

MethodeTEXTFILE.CLOSE [i fileid][]
BeschreibungSchliesst ein mit TEXTFILE.CREATE oder TEXTFILE.OPEN geöffnetes File.
Beispiel
VAR.F1 TEXTFILE.CLOSE

16.5. Weitere

MethodeTEXTFILE.GET_FILES [s File-Pattern][li list]
BeschreibungLiest die Filenamen aufgrund eines File-Pattern und liefert diese Filenamen in einer Liste zurück.
Beispiel
'c:\temp\*.txt' TEXTFILE.GET_FILES [list]
MethodeTEXTFILE.IS_DIRECTORY [s File][b status]
BeschreibungTestet, ob ein File ein Directory ist oder nicht. Liefert den Status TRUE oder FALSE zurück.
Beispiel
'c:\temp' TEXTFILE.IS_DIRECTORY [TRUE]
MethodeTEXTFILE.REMOVE [s File][b status]
BeschreibungLöscht ein File. Liefert den Status TRUE oder FALSE zurück.
Beispiel
'c:\temp\test.txt' TEXTFILE.REMOVE [TRUE] 
MethodeTEXTFILE.GET_FILEDATE [s File][i date,i time]
BeschreibungGibt das Erstelldatum und die Erstellzeit (hhmmss) einer Datei <File> zurück.
Beispiel
'c:\temp\test.txt' TEXTFILE.GET_FILEDATE [20050327,100855] 
MethodeTEXTFILE.GET_FILESIZE [s File][i size]
BeschreibungGibt die Grösse einer Datei in Byte zurück.
Beispiel
'c:\temp\test.txt' TEXTFILE.GET_FILESIZE [800857] 
MethodeTEXTFILE.GET_POS [i fileid][i pos,b state]
BeschreibungGibt die aktuelle Schreibposition einer geöffneten Textdatei zurück.
Beispiel
VAR.F1 TEXTFILE.GET_POS [TRUE,7897]
MethodeTEXTFILE.SET_POS [i fileid,i pos][b state]
BeschreibungSetzt die aktuelle Leseposition einer geöffneten Textdatei.
Beispiel
VAR.F1 7897 TEXTFILE.SET_POS [TRUE]