Funktionreferenz


FileGetPos

Beschreibung anzeigen in

Ermittelt die aktuelle Datei-Position.

FileGetPos ( "filehandle" )

Parameter

filehandle Das Handle einer Datei, welches durch vorherigen Aufruf von FileOpen() zurückgegen wurde.

Rückgabewert

Erfolg: Die Position vom Anfang der Datei (Erster Index ist 0).
Fehler: 0 und setzt das @error Flag auf ungleich null.

Bemerkungen

Ein Fehler gibt zwar 0 zurück, aber 0 ist ebenso eine gültige Dateiposition, also ist es ratsam @error zu prüfen um Fehler zu ermitteln.

Verwandte Funktionen

FileOpen, FileRead, FileReadLine, FileSetPos, FileWrite, FileWriteLine

Beispiel

#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>

Example()

Func Example()
    ; Erstellt eine Konstante im lokalen Bereich des Dateipfads der gelesen bzw. in den geschrieben werden soll.
    Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir)

    ; Öffnet die Datei für das schreiben (überschreibt die Datei) und speichert das Handle in einer Variable.
    Local $hFileOpen = FileOpen($sFilePath, $FO_OVERWRITE)
    If $hFileOpen = -1 Then
        MsgBox($MB_SYSTEMMODAL, "", "Es ist während dem lesen der Datei ein Fehler aufgetreten.")
        Return False
    EndIf

    ; Schreibt Daten in die Datei. Dabei wird das durch FileOpen zurückgegebene Handle verwendet.
    FileWriteLine($hFileOpen, "Zeile 1")
    FileWriteLine($hFileOpen, "Zeile 2")
    FileWriteLine($hFileOpen, "Zeile 3")

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

    ; Prüft die Dateiposition und versucht den Inhalt der aktuellen Position zu lesen.
    MsgBox($MB_SYSTEMMODAL, "", "Position: " & FileGetPos($hFileOpen) & @CRLF & "Daten: " & @CRLF & FileRead($hFileOpen))

    ; Nun wird die Position des Starts festgelegt.
    FileSetPos($hFileOpen, 0, $FILE_BEGIN)

    ; Prüft die Dateiposition und versucht den Inhalt der aktuellen Position zu lesen.
    MsgBox($MB_SYSTEMMODAL, "", "Position: " & FileGetPos($hFileOpen) & @CRLF & "Daten: " & @CRLF & FileRead($hFileOpen))

    ; Schließt das Handle welches von FileOpen zurückgegeben wurde.
    FileClose($hFileOpen)

    ; Löscht die temporäre Datei.
    FileDelete($sFilePath)
EndFunc   ;==>Example