| |
|
|
Georg Teles | Guten Abend !
habe etwas Zeit gefunden & eines meiner Projekte aufgenommen (Archivierer) & stelle fest, dass EOF(#Nr) korrekt ist (1= Ende erreicht, 0 = nicht) nur wenn die File max. 2 Gb grande ist - zudem gibt GetFileSize(#Nr) auch richtige Werte bei der selben Bedingung zurück - FilePos(#Nr) liefert auch nur richtige Werte, wenn der Zeiger (etwa) unter 2^31 ist
Archive können beliebig grande sein - nun würden viele sagen, wer macht schon Archive > 2 Gb ? naja ich kann mich noch nicht entscheiden, eine Grenze zu ziehen, möchte aber keine setzen
meine Idee: zunächst Dateigröße mit FileSize in String ablegen - zudem: wenn FilePos > 2^31 erreicht, soll ein Faktor gesetzt werden (s. FilePos oben), mit Seek #Nr,Position ließe sich dann problemlos durch das Archiv bewegen
in der Kombination kann man dann leicht feststellen, ob Fehler beim Einlesen aufgetreten sind (zB. Archivende korrekt erreicht, fehlt ein Byte, ist ein Byte dazugekommen etc.)
gibt es elegantere Lösung was EOF & FilePos, in Verbindung mit sehr grande File, angeht ? (kein QuadInt ergo da ich XPSE benutze)
Grüße |
|
|
| |
|
|