Hallo Thomas,
bin zwar nur Anfänger aber trotzdem habe ich mich an deinem Code mal versucht. Folgendes habe ich herausgefunden:
Wenn die Funktionen zum Löschen und Umbenennen aufgerufen werden, sind zu diesem Zeitpunkt Dateien geöffnet. Genau hier liegt der Knackepunkt. Wenn Dateien geöffnet sind, kannst du die Renamefilefunktion etc. nicht aufrufen. Kannste ganz einfach ausprobieren. Erstelle ein Verzeichnis "c:\Test" und erstelle mit dem Editor eine Textdatei "Probe.txt". Lasse den Editor mit der Probe.txt geöffnet und versuche folgendes:
Code: Alles auswählen
MessageRequester("","Werde Verzeichnis jetzt umbenennen")
If RenameFile("c:\test","c:\test1")=0
MessageRequester("","Umbenennung fehlgeschlagen")
Else
MessageRequester("","Umbenennung war erfolgreich")
EndIf
End
Du wirst merken, du kannst das Verzeichnis "Test" nicht umbenennen.
Genau das ist auch die Ursache in deinem Programm.
Nun zum Code selber. Die Organisation solcher Daten würde ich anders gestallten. Dazu würde ich eine Datenbank nehmen. Eine Datenverwaltung in Form von Verzeichnissen finde ich nicht als die gute Wahl. Aber das ist meine persöhnliche Meinung.
Jetzt zum Code selber. Du verwendest hier jede Menge Gosub-Anweisung.
Mich wundert es bloß, daß sich da noch keiner darüber geäußert hat. Verwende lieber die procedurale Programmierung. Das vereinfacht meiner Ansicht nach die Übersicht. Der Vorteil auch: Rechts im Code-Fenster sieht du die Proceduren und kannst sie direkt anspringen.So hast du vielleicht einige mit dem Spaghetti-Code abgeschreckt, die guten Willens waren zu helfen. Überdenke das einmal.
Auch ich habe in Zeiten von Schneider CPC464 so programmiert und hatte mich am Anfang der prozedualen Programmierung sehr schwer getan. Im Nachhinein hat sich die Mühe gelohnt. Versuche mal den "Manager" diesbezüglich umzuschreiben. Wenn du Schwierigkeiten hast, poste einfach.
Wie heißt es immer so schön: "Hier werden Sie geholfen"