Hallo allerseits,
ich habe für ein Programm eine Vorlage mittels AutoIT erstellt. In diesem Skript werden zur Zeit vier Kalenderjahre in einer GUI zur Auswahl angeboten. In der gleichen GUI wird auch ein Dateiname abgefragt.
Das ganze wird in der Folge zur Erstellung einer gewissen Ordnerstruktur mit diversen xml Dateien und speziellen Programmdateien mit der Endung *.rec verwendet. Das eigentliche Programm nutzt diese Vorlage für den Aufbau eines Falls in einer Datenbank.
Maximal Sorgfalt muss auf den Dateinamen verwendet werden. Dieser muss einmalig sein. Das Skript war bisher so aufgebaut, dass der Dateinamen verglichen wurde und bei einer Namensgleichheit das Skript abgebrochen oder neu gestartet werden konnte.
Nachdem alle kleinen Macken beseitigt sind, wollte ich die Namensüberprüfung korrigieren. Das mit dem Neustart des Skriptes hat mir so nicht gefallen. Mein Plan war daher, die Namensüberprüfung wie gewohnt durchlaufen zu lassen, aber mittels einer Inputbox einen neuen Namen vergeben zu können.
Das funktioniert auch so weit. Wenn ich den Namen der als Duplikat gefunden wurde erneut eingebe, läuft das Skript durch und überschreibt den Fall der in dem entsprechenden Laufwerk abgelegt wurde und was noch schlimmer ist, dass bei versehentlicher Übernahme der Vorlage in das Programm Probleme in der Datenbank auftreten.
Ich müsste das so regeln, dass bei einer Namenseingabe in der Inputbox der dort vergebene Name auch wieder überprüft wird. Und das solange bis ein eindeutiger Name vergeben worden ist.
Spoiler anzeigen
Global $datum, $name, $Neuername, $Dateiname
if $Dateiname = ("I:\AIS_" & $Datum & $Dateiname) or ("I:\AIS_" & $Dateiname) then
$name = MsgBox(262144,"Namenskonflikt!", "Dieser Dateiname existiert bereits!")
EndIf
if $name = 1 Then
$NeuerName = InputBox("Name", "Bitte korrigieren Sie den Namen:", $Dateiname)
$Dateiname = $Neuername
EndIf
Das ist bestimmt eine Kleinigkeit, aber ich sehe zur Zeit den Wald vor läuter Bäumen nicht
Gruß Ralf