Funktionsreferenz

FileSetPos

Setzt die aktuelle Datei-Position.

FileSetPos ( handle, offset, origin )

 

Parameter

handle Ein Handle zu einer Datei, die zuvor mit FileOpen() geöffnet wurde.
offset Der zu bewegende Abstand von der Ursprungsposition. Dieser Wert kann sowohl positiv als auch negativ sein. Negative Werte bewegen rückwärts vom Ursprung.
origin Muss einer der folgenden sein:
 0 - Anfang der Datei ($FILE_BEGIN aus Constants.au3).
 1 - Aktuelle Position ($FILE_CURRENT aus Constants.au3).
 2 - Ende der Datei ($FILE_END aus Constants.au3).

 

Rückgabewert

Erfolg: True wenn die Operation erfolgreich verlief.
Fehler: False.

 

Bemerkungen

Inkludiere Constants.au3 in das Skript um die symbolischen Namen dazu zu nutzen, den Ursprung anzugeben.
Bei Nutzung von FileSetPos() ist beides möglich, Schreiben und Lesen in derselben Datei. Wenn angestrebt wird in die selbe Date zu schreiben und zu lesen, dann ist immer FileFlush() zwischen jedem Schreib- und Lesevorgang aufzurufen.
Den Zeiger in die Mitte der Daten zu bewegen kann dazu benutzt werden um Daten zu überschreiben.

 

Verwandte Funktionen

FileGetPos, FileFlush, FileRead, FileReadLine, FileWrite, FileWriteLine, FileOpen

 

Beispiel


#include <Constants.au3>

Local Const $sFile = "test.txt"
Local $hFile = FileOpen($sFile, 2)

; Prüft, ob zum Schreiben geöffnete Datei OK ist
If $hFile = -1 Then
    MsgBox(0, "Fehler", "Kann Datei nicht öffnen.")
    Exit
EndIf

; Schreibt etwas in die Datei.
FileWriteLine($hFile, "Zeile1")
FileWriteLine($hFile, "Zeile2")
FileWriteLine($hFile, "Zeile3")

; Entleert den Dateipuffer auf die Festplatte.
FileFlush($hFile)

; Prüft Dateiposition und versucht den Inhalt ab der aktuellen Dateiposition zu lesen.
MsgBox(0, "FileGetPos", StringFormat("Position: %d\nDaten:\n%s", FileGetPos($hFile), FileRead($hFile)))

; Setzt nun die Position an den Anfang.
Local $n = FileSetPos($hFile, 0, $FILE_BEGIN)

; Prüft Dateiposition und versucht den Inhalt ab der aktuellen Dateiposition zu lesen.
MsgBox(0, "FileGetPos", StringFormat("Position: %d\nDaten:\n%s", FileGetPos($hFile), FileRead($hFile)))

; Schließt das Handle.
FileClose($hFile)

; Bereinigt die temporäre Datei.
FileDelete($sFile)