2Mal FileRead mit dem gleichem Handle übergibt nichts!?

  • Hallo
    Aus irgendeinem Grund funktioniert das hier überhaupt nicht. Der Fehler ist, dass beim 2ten Mal nicht zurück kommt. Auch wenn das Skript keinen Sinn ergibt im ersten Anblick, brauch ich das. Soweit ich weiß dürfte so ein Fehler doch nur auftreten, wenn das Handle nicht geschlossen wurde und so die File heit nicht ereichbar ist, aber das hier ist ja in meinem eigenem Skript und ich habe ja das Handle erfolgreich bekommen... Es funktioniert nur, wenn ich das Handle schließe und danach wieder öffne. Nur ist das nicht wirlich schnell.

    [autoit]

    $hFile=FileOpen(@ScriptDir&"\test.txt",0)
    $sRead1=FileRead($hFile)
    $sRead2=FileRead($hFile)
    MsgBox(0,"",$sRead1&@CRLF&"--"&@CRLF&$sRead2)
    FileClose($hFile)

    [/autoit]


    Danke für eure Hilfe
    MfG AntiSpeed

    Nur keine Hektik - das Leben ist stressig genug

    Einmal editiert, zuletzt von AntiSpeed (1. Mai 2011 um 18:02)

  • Bei einem FileRead wird vom aktuellen Zeiger bis zum Ende der Datei bzw. die angegebene Anzahl von Zeichen gelesen. Anschließend wird der Zeiger auf das nächste, noch nicht gelesene Zeichen gesetzt.

    Also musst du entweder die Datei neu öffnen oder per FileSetPointer die nächste Lesestelle auswählen.

  • Ich meinte FileSetPos (in der WinAPI ist es SetFilePointer, daher hab ich es verwechselt). Und du hast die falsche Variable verwendet, sonst würde es funktionieren.