Hallo zusammen,

habt ihr folgendes Problem schon einmal gehabt?

Um große Daten auszulesen (ich verwende die FILE_ACCESS Bibliothek), die die Größe meines Buffers überschreiten setze ich, um alle Daten zu bekommen, den Pointer (FILE.SetPos) an die Stelle an der das Einlesen stoppte. Dann beginne ich das Einlesen von dieser Position (ein Vielfaches der Buffergröße) erneut bis das Ende der Datei erreicht ist (FILE.xEOF).

Hierbei stoße ich jedoch auf das folgende, merkwürdige Verhalten. Wenn die Datei vollständig gelesen ist und der Buffer hierdurch jedoch noch nicht vollständig gefüllt ist, dann wird der Buffer durch die Funktion (FILE.READ) weiter gefüllt und zwar wieder aufsteigend mit den letzten Daten der Datei. Zudem wird hierdurch nie „FILE.xEOF“ auf TRUE gesetzt.

Hier ein kurzes Beispiel um den Sachverhalt zu verdeutlichen:
Meine Datei besteht aus 100 Bytes und mein Buffer hat eine Größe von 80 Bytes. Dann lese ich zuerst die ersten 80bytes in den Buffer und setzte im nächsten Durchlauf die Position auf 80. Jetzt, obwohl nur noch 20Bytes in meiner Ausgangsdatei übrig sind, werden die letzten 20Bytes eingelesen aber zusätzlich auch noch die letzten 60 Bytes der Datei um den Buffer zu füllen. Wie kann ich dieses Verhalten unterbinden?

Über eure Lösungsvorschläge würde ich mich sehr freuen.

Grüße,
Anas