Hier mal ein abgewandelter Auszug aus einem ähnlichen Programm von mir:
Delphi-Quellcode:
type
TShredder = class
private
FBuffer: packed array[0..$20000 div sizeof(integer)] of integer;
public
constructor Create;
function ShredderFile(Name: string): Boolean;
end;
constructor TShredder.Create;
begin
randomize;
end;
procedure TShredder.GenerateRandomBuffer;
var
i: Integer;
begin
for i := 0 to High(FBuffer) do
FBuffer[i] := random(maxint);
end;
function TShredder.ShredderFile(Name: string): Boolean;
var
LFileStream: TFileStream;
LWriteCount: integer;
begin
Result := False;
LFileStream := TFileStream.Create(Name,fmCreate);
try
LFileStream.Position := 0;
while LFileStream.Position < LFileStream.Size-1 do
begin
LWriteCount := min(length(FBuffer),
LFileStream.Size-LfileStream.Position);
LFileStream.Write(FBuffer[0],LWriteCount);
GenerateRandomBuffer;
end;
Result := True;
finally
LFileStream.Free;
end;
end;
Übrigens würde mich interessieren, weshalb du Bit-Operationen verwendest, anstatt die Daten einfach mit völlig anderen Werten zu überschrieben.