FSEEK() > 4GB ? / SDFDBE

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

FSEEK() > 4GB ? / SDFDBE

Beitrag von AUGE_OHR »

es gab ja die PDR 6383 zur Behebung der 2 GB Grenze mit dem FSEEK() bis 4 GB gehen "müsste".
die Frage ist ob FSEEK() auch > 4 GB kann ?
---
SDFDBE (DATA-Komponente) wird angegeben :
Dateigröße Limitiert auf Systemresourcen
ist damit jetzt Xbase++ 32bit gemeint ? -> 4 GB ?
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: FSEEK() > 4GB ? / SDFDBE

Beitrag von brandelh »

:arrow: http://www.xbaseforum.de/viewtopic.php? ... eek#p91022

da hatten wir das schon mal diskutiert.

Wenn man die PDR Beschreibung liest, soll es wohl auch einen 1.90.xx "HotFix" geben, den habe ich nicht.
Nach meinen Tests, kann man mit 1.90.355 (wohl schon früher) mit fread() und fwrite() auch Dateien über 4 GB schreiben und lesen, aber alle FSEEK() Zugriffe über 2 GB sind nicht möglich (Wert wird negativ).

Mit der 2.00.547 (laut PDR schon 2.00.430) wurde dieses Problem dann behoben, hier arbeitet FSEEK() fehlerfrei, egal mit welcher Dateigröße ich schon probiert habe.

In allen Versionen muss man aber berücksichtigen, dass FSEEK() auch über das Dateiende hinaus liest, erst mit fread() wird EOF erkannt.

Die Begrenzung der Systemresourcen bezüglich maximaler Dateigröße hängt vom Dateisystem ab: NTFS (ich meine 16 TB), Fat32, FAT (2 GB) etc. und natürlich vom Datenträger, ein 2 GB Stick kann keine 4 GB Datei halten :wink:
Gruß
Hubert
Antworten