Beim nachvollziehen fiel mir auf: die Variable arr wird definiert aber nicht benutzt. Also lasse ich diese weg!?
Ja.
Zitat:
CounttoWrite ist bei 34, FillBuffer[j] hat aber nur 6 Elemente zum Ansteuern... Was passiert also in 29 Schleifendurchgängen- nichts?
Das eine hat mit im Normalfall mit dem anderen nichts zu tun. Ein Shredder überschreibt die selbe Stelle mehrfach, um die einzelnen Bit's nicht mehr rekonstruieren zu können. Allerdings wird es hier wie Du festgestellt hast knallen.
Zitat:
Bei DeleteFile im ersten Block soll eine sog. $temp.tmp Datei gelöscht werden. Gibt es die überhaupt?
Diese wird doch hier erzeugt
if not RenameFile(FileName, newname)
Insgesamt nicht unbedingt ein mustergültiges Beispiel.