Such einfach mal im Forum nach
Shredder,
FileShredder,
Eraser und so weiter,
Dann wirst du viele Codes finden, welche sogar funktionieren
(ja, auch einen alten Code von mir ... also bevor ich es besser wußte)
Aber im Endefekt ist das bei heutiger Hardware eh alles sinnlos.
Überschreib die Datei einfach nur einmal mit 0-en und fertig isses.
Abgesehn davon hast du eh Probleme:
Was ist mit alten Daten (Kopien des Dateisystems) der Datei, welche z.B. durch die Defragmentierung entstanden sind oder alten Versionen der Datei?
Die Daten kann man schon seit Jahren nicht wieder herstellen, wenn sie EINMAL überschrieben wurden.
Und wenn dann ist das einfach nur Aberglaube und der Geschäftssinn von Leuten, welche anderen unwissenden Leuten irgendwas verkaufen wollen.
PS:
for i := Low(i) to l do
Low(i) = MinInt = minus 2 Millonen
du meinst vermutlich
1 to L
außerdem ist der Byteweise Zugriff etwas Ineffektiv
und Lazarus schaff es ein 4 GB-Array auf den Stack zu legen?
Array[DWord] of Byte = Array[Low(DWord)..High(DWord)] of Byte = 4 GB
abgesehn davon, daß du die ganze Datei erstmal in einen
RAM kopierst,
was (abgesehn von dem eh schon zugroßem Array, welches nicht möglich sein sollte und bei Verwendung eines dynamischen Arrays in Dateigröße) ein bissl viel sein könnte ... also bei (sehr) großen Dateien