![]() |
FileOpen & Co.
Hallo
Code:
Dieser Code soll eigentlich jedes Byte einer Datei durch ein Zufallsbyte ersetzen, tut er arber nicht. Woren könnte das liegen?
procedure DestroyFile(fFile: String);
var vFile: THandle; vNothing: Byte; vPosition: Cardinal; vFileSize: Cardinal; vEmpty: LongWord; begin vPosition:=0; vFileSize:=GetFileSize(fFile); if vFileSize = 0 then exit; vFile := Integer(CreateFile(PChar(fFile), GENERIC_WRITE, FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)); try while vPosition < vFileSize do begin vNothing := Random( 256 ); WriteFile(vFile, vNothing, SizeOf(vNothing), vEmpty, nil); Inc( vPosition ); SetFilePointer(vFile, 0, nil, vPosition); end; finally CloseHandle(vFile); end; end; Onz |
Re: FileOpen & Co.
Hast du zuvor Randomize aufgerufen?
|
Re: FileOpen & Co.
also vielleicht liegt es ja daran das caridal <> string ist?
Also der Code wie von dir oben kann nicht funzen... |
Re: FileOpen & Co.
Ach so, jetzt seh ich was, du rufst SetFilePointer so auf:
Delphi-Quellcode:
Schau dir die Beschreibung dieser Funktion noch mal an und du wirst sehen, dass dein vPosition an die zweite Stelle gehört und an die letzte FILE_BEGIN. Oder du benutzt FILE_CURRENT und springst um 1 weiter.
SetFilePointer(vFile, 0, nil, vPosition);
|
Re: FileOpen & Co.
Morgen
Zitat:
Zitat:
Zitat:
Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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