![]() |
Truncate/SetEndOfFile, verhindern das Datei genullt wird
Moin DP!
Mich nervt gerade das Problem, das mir (große) Dateien immer genullt werden, was mir zu lange dauert, für meine Zwecke unnötig ist und meine Nerven strapaziert... Ums auf den Punkt zu bringen hab ich einen Test QT gemacht:
Delphi-Quellcode:
Sobald ich Daten ans Ende der Datei schreibe wird die komplette Datei von Anfang bis FilePos genullt :evil: und erst dann die eigentlichen Daten geschrieben...
var F:File;
i:Cardinal; PC:Array[0..65535] of Char; begin AssignFile(F, 'L:\~Test.tmp'); ReWrite(F, 1); i:=1 * 1024 * 1024 * 1024; Seek(F, i+65536); Truncate(F); Seek(F, i); BlockWrite(F, PC, 65536); // Hier haben wir das Die-Lämmer CloseFile(F); end; Ich habs versucht, die Datei (mit der Größe) zu erstellen, schließen, öffnen und dann ans Ende schreiben, aber das half nix, sie wurde wieder genullt :roll: Dann hab ichs direkt mit der WinAPI versucht, aber auch da war der selbe Effekt :( Wie kann ich ans Ende einer Datei schreiben ohne das alles davor genullt wird? :gruebel: MfG, Sun |
Re: Truncate/SetEndOfFile, verhindern das Datei genullt wird
Zitat:
Truncate entspricht sozusagen ![]() Seit WinXP gibt es ![]() Zitat:
![]() |
Re: Truncate/SetEndOfFile, verhindern das Datei genullt wird
Hallo,
Zitat:
|
Re: Truncate/SetEndOfFile, verhindern das Datei genullt wird
nee, sobald man die Datei vergrößert ... wie auch immer (außer man schreibt über das Dateiende hinaus und vergrößert so), wird "immer" mit 0 gefüllt ... damit kommen "normale" Programme nicht an alte Dateidaten/Datenstrukturen auf der Platte ran, indem sie einfach 'ne Datei erstellen und schauen was drin ist ... Datensicherheit halt
|
Re: Truncate/SetEndOfFile, verhindern das Datei genullt wird
Oha, Danke für den Tipp, mit SetFileValidData klappt das wirklich :hello:
Obs ein Problem gibt, wenn die Dtei komprimiert ist guck ich noch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz