@FILEOPEN[filename,r[ead]|w[rite]|a[ppend][,b|t]]: Öffnet die Datei im angegebenen Modus und gibt das Dateihandle als Ganzzahl  zurück. Der optionale dritte Parameter bestimmt, ob die Datei im Binär- oder Textmodus geöffnet wird. DerTextmodus (die Voreinstellung) sollte zum Lesen von Text mit @FILEREAD ohne Längenangabe und zum Schreiben von Text mit @FILEWRITEverwendet werden. Der Binärmodus sollte verwendet werden, um binäre Daten mit @FILEREAD mit einer Länge zu lesen und binäre Daten mit @FILEWRITEB zu schreiben . Gibt -1 zurück, wenn die Datei nicht geöffnet werden kann.

 

DerDateiname muss in Anführungszeichen stehen, wenn er Leerzeichen oder Sonderzeichen enthält. Um von der Standardeingabe zu lesen, verwenden Sie CON: für den Dateinamen.

 

Um eine Datei sowohl zum Lesen als auch zum Schreiben zu öffnen, öffnen Sie sie imModus append und verwenden Sie @FILESEEK, um an den Anfang der Datei (oder eine andere gewünschte Stelle) zu positionieren, bevor Sie weitere Operationen durchführen.

 

@FILEOPEN kann auch benannte Pipes öffnen. Der Pipe-Name muss mit \\.\pipe\ beginnen . @FILEOPEN versucht zunächst, eine vorhandene Pipe zu öffnen; schlägt dies fehl, wird versucht, eine neue Pipe zu erstellen. Pipes werden im blockierenden Modus, im Duplex-Zugriff und im Byte-Lese-Modus geöffnet und sind vererbbar. @FILEOPEN kehrt erst zurück, wenn sich ein anderer Prozess mit der Pipe verbindet. Weitere Informationen über benannte Pipes finden Sie in Ihrer Windows-Dokumentation.

 

@FILEOPEN kann Dateistreams auf NTFS-Laufwerken öffnen, wenn der Stream-Name angegeben ist. Siehe NTFS-Dateistreams für weitere Details zu Dateistreams.

 

Sie müssen die Datei ausschließlich über das zurückgegebene Dateihandle referenzieren und die Datei über das Dateihandle schließen. Dies ist besonders wichtig, wenn Sie ein Batch-Programm debuggen, das @FILEOPEN verwendet. Wenn Sie den Verdacht haben, dass Datei-Handles geöffnet und nicht geschlossen wurden, sollten Sie das Programm neu starten TCC.

 

Beispiele:

 

set h=%@fileopen["d:\path\myfile.txt",write]

echo writing %@filewrite[%h,this is a test] bytes

echo closing handle #%h: %@fileclose[%h]

 

See also the related handle-based functions:

 

@FILECLOSESchließen eines Datei-Handles
@FILEREADLesen der nächsten Zeile aus einem Datei-Handle
@FILESEEKVerschieben eines Datei-Handle-Zeigers
@FILESEEKLVerschieben eines Datei-Handle-Zeigers auf eine bestimmte Zeile
@FILEWRITESchreiben der nächsten Zeile in ein Dateihandle
@FILEWRITEBSchreiben von Daten in ein Dateihandle
@TRUNCATEAbschneiden der Datei an der aktuellen Position des Datei-Handle-Zeigers.