Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: Datei kürzen (truncate) für files > 4.294 GB

  Alt 14. Nov 2005, 17:41
Und zwar sind die Dateifunktionen/-prozeduren intern nur auf 32 Bit ausgelegt, aber glücklicher Weise funktioniert der größte Teil dennoch oberhalb dieser Grenze.

Der Grund ist, daß nur ein 32-Bit-Zeiger verwendet wird und daher an die API-Funktionen eben nur maximal 32-Bit übergeben werden können.

Abhilfe hab ich vor kurzem mal geschaffen
Es brauchen also nur die entsprechenden Funtionen/Prozeduren ersetzt zu werden, der Rest bleibt gleich.

64-Bit für TextFile / File of xxx (die Datei aus Beitrag #2 verwenden)


Die andere Lösung wurde ebenfalls schon vorgeschalgen ... einfach direkt an die Win-API wenden


@shmia: dman kann auch das normale SetFilePointer verwenden und dieses ist in der Unit Windows vorhanden ... siehe meine Unit
(die Delphi-Funktionen haben wie gesagt nur den 32-Bit-Integer und daher werden die höheren Bits einfach nicht übergeben ... bei SetFilePointer ist die Position ganz einfach auf zwei 32-Bit-Werte aufgesplittet, wobei der höherwertige Anteil als Pointer übergeben wird und daher auch weggelassen werden kann, was halt einfach mal gemacht wurde ^^)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat