Diesmal brauch ich wirklich eure Hilfe.
Ich hab den Code nun komplett fertiggestellt.
Wie schon gesagt eine kleine Anwendung.
Damit man sich das ganze besser vorstellen kann:

Das Problem dabei ist, dass sich die Anwendung bei dem Überschreiben aufhängt, oder, wie ich vermute, nicht aufhört das überschreiben zu Wiederholen. Es muss also etwas mit der b - wdh schleife zu tun haben.
Allerdings hab ich keine Ahnung was da nicht stimmt.
Was mach ich da falsch?
Code: Alles auswählen
;Shredder PB Quellcode © by Cedric
If OpenWindow(0, 422, 286, 300, 241, "Shredder", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(0))
Frame3DGadget(0, 10, 10, 280, 50, "Datei")
StringGadget(1, 20, 30, 210, 20, "")
ButtonGadget(2, 240, 30, 30, 20, "...")
TextGadget(3, 20, 90, 140, 20, "Anzahl der Wiederholungen:")
SpinGadget(4, 170, 90, 40, 20, 1, 100, #PB_Spin_ReadOnly | #PB_Spin_Numeric)
Frame3DGadget(5, 10, 70, 280, 50, "")
Frame3DGadget(6, 10, 130, 280, 50, "Status")
TextGadget(7, 20, 150, 40, 20, "Größe: ")
TextGadget(8, 180, 150, 40, 20, "Status: ")
TextGadget(9, 60, 150, 120, 20, "0 Bytes")
TextGadget(10, 220, 150, 65, 20, "?")
ButtonGadget(11, 210, 200, 80, 30, "löschen")
ButtonGadget(12, 10, 200, 80, 30, "abbrechen")
SetGadgetState(4, 1)
DisableGadget(11, 1)
EndIf
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget() = 2
file$ = OpenFileRequester("Datei...", "C:\", "Alle Dateien (*.*)", 0)
SetGadgetText(1, file$)
DisableGadget(11, 0)
If ReadFile(0, file$)
length = Lof(0)
*MemoryID = AllocateMemory(length)
If *MemoryID
bytes = ReadData(0, *MemoryID, length)
SetGadgetText(9, Str(bytes)+" Bytes")
EndIf
CloseFile(0)
EndIf
SetGadgetText(10, "Bereit")
EndIf
EndIf
If Event = #PB_Event_Gadget
If EventGadget() = 11
DisableGadget(11, 1)
SetGadgetText(10, "Überschreibe")
wdh = GetGadgetState(4)
If OpenFile(0, file$)
Repeat
Repeat
WriteWord(0, Random($FFFF))
a + 2
Until a = bytes
CloseFile(0)
Until b = wdh
Else
MessageRequester("Fehler", "Es ist ein Fehler aufgetreten. Stellen sie sicher das die Datei weder schreibgeschützt ist noch gerade verwendet wird.")
End
EndIf
SetGadgetText(10, "Lösche")
If DeleteFile(file$)
DisableGadget(11, 0)
SetGadgetText(10, "Fertig")
MessageRequester("Info", "Datei wurde erfolgreich gelöscht!")
Else
MessageRequester("Fehler", "Es ist ein Fehler aufgetreten. Stellen sie sicher das die Datei weder schreibgeschützt ist noch gerade verwendet wird.")
End
EndIf
EndIf
EndIf
If Event = #PB_Event_Gadget
If EventGadget() = 12
End
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
; Do not change, copy and reproduct without my permission.
grüße,
DrNo