Vorheriges Thema: OpenPipe - Öffnen einer PipeNächstes Thema: SeekFile - Ändern der aktuellen Position in einer geöffneten Datei


ReadFile - Lesen von Daten aus einer Datei

Gültig für NetWare, Symbian OS, UNIX, Windows und Windows CE.

Die Funktion "ReadFile" liest Daten aus einer Datei.

Die Dateiinhaltsfunktion kann eines der folgenden Formate haben:

ReadFile (handle as Integer, buffer as String) as Boolean
ReadFile (handle as Integer, buffer as String, buflen as Integer) as Boolean
ReadFile (handle as Integer, buffer as Void) as Boolean
ReadFile (handle as Integer, buffer as Void, buflen as Integer) as Boolean
handle

Gibt ein Datei-Handle an, das von einem vorherigen Aufruf von "OpenFile" oder "Create File" zurückgegeben wurde.

buffer

Legt eine Variable eines beliebigen Typs fest.

Puffer vom Array-Typ "char" werden als Zeichenfolgen behandelt.

Wenn es sich bei dem Argument für den Puffer um eine Variable vom Typ "String" (Zeichenfolge) handelt, liest die Funktion von der aktuellen Dateiposition, bis sie ein Zeilenumbruchzeichen oder die maximale Anzahl der Zeichen erreicht hat. Wenn das Pufferargument ein anderer Variablentyp ist, beginnt die Funktion den Lesevorgang an der aktuellen Dateiposition und beendet ihn, wenn der Puffer voll ist oder wenn der Dateizeiger das Dateiende erreicht.

Void bedeutet, dass der Objekttyp ein beliebiger gültiger Typ außer String und Array of Char sein kann.

buflen

Legt die Anzahl an Byte fest, die von der Datei in den Puffer gelesen werden. Wenn die Datei nicht über ausreichende Byte verfügt, werden alle verbleibenden Byte in den Puffer übertragen.

Bei erfolgreichem Abschluss gibt die Funktion TRUE zurück, andernfalls FALSE.

Hinweis: Mischen Sie die unterschiedlichen Formate der Funktion "ReadFile()" nicht, da dies zu unerwarteten Ergebnissen führen kann.

Im Unterschied zu den anderen Formaten wird die Zeichenfolge beim ersten Format als Textzeile gelesen, die durch ein Zeilenumbruch- oder Dateiendezeichen beendet wird. Die Informationen werden dann ohne das Zeilenumbruchzeichen im Puffer gespeichert. Der Interpreter ordnet diese Funktion einer anderen System-Lesefunktion als die anderen drei Formate zu. Die anderen ReadFile-Formate werden einer gemeinsamen System-Lesefunktion zugeordnet.

Diese unterschiedlichen System-Lesefunktionen verwenden zum Abrufen der Daten möglicherweise abweichende Caches und Lesezeiger. Wenn Sie die Formate mischen, kann es passieren, dass die Daten nicht in der Reihenfolge gelesen werden, in der sie auf dem Laufwerk gespeichert sind.

Beim ersten Format wird die Zeichenfolge als Textzeile gelesen, die durch ein Zeilentrennzeichen oder ein Dateiendezeichen beendet wird. Die Informationen werden im Puffer ohne dieses Neue-Zeile-Zeichen gespeichert. Dies gilt nicht für die anderen ReadFile-Funktionen.

Der Interpreter ordnet diese Funktion einer anderen System-Lesefunktion zu als die anderen drei Formate, die einer gemeinsamen System-Lesefunktion zugeordnet werden. Diese unterschiedlichen System-Lesefunktionen verwenden zum Abrufen der Daten möglicherweise auch abweichende Caches und Lesezeiger. Wenn die Formate vermischt werden, werden die Daten möglicherweise nicht in der Reihenfolge gelesen, in der sie auf dem Laufwerk gespeichert wurden.

Beispiel:

Dim fIn, fOut as integer   ' Declare file handles
Dim OneLine as string     ' String to hold one line

Rem First open the Input file...

fIn=OpenFile("C:\CONFIG.SYS",O_READ)
if fIn<0 then
	MessageBox("Eingabedatei kann nicht geöffnet werden","Fehler")
	Goto End
End if

Rem ...Then create the output file...

fOut=CreateFile("C:\CONFIG.BAK")
if fOut<0 then
	MessageBox("Ausgabedatei kann nicht geöffnet werden","Fehler")

CloseFile(fIn)
	Goto End
End if

Rem ...Copy lines until none left...

while Not(Eof(fIn))
	if ReadFile(fIn,OneLine) then WriteFile(fOut,OneLine)
wend

Rem ...Close Files, and signal success.

CloseFile(fIn)
CloseFile(fOut)
MsgBox("Eine Sicherungskopie der Datei CONFIG.SYS wurde erstellt","MyScript",MB_OK)

end: