Hallo,
ich hatte mal die gleiche Anforderung.
Ich hab´s so gelöst, dass ich prüfe, ob der Dateiname (inkl. der Nummerierung) vorhanden ist.
Ist der Dateiname vorhanden, zähl ich hoch und prüf wieder, bis der Dateiname nicht mehr
vorhanden ist. Das ist dann der nächst freie Dateiname.
Hier mal mein Code:
Delphi-Quellcode:
function SicherungName(Pfad, DateiName, Endung: String): String;
var
i: Integer;
begin
//Variablen vordefinieren
Result := '';
i := 1;
//Pfad mit einem Backslash enden lassen
Pfad := IncludeTrailingPathDelimiter(Pfad);
while true do
begin
//Dateinamen zusammenstellen
Result := Pfad + Format('%s%.3d.%s', [DateiName, i, Endung]);
//wenn Datei nicht vorhanden, dann Schleife beenden
If not FileExists(Result) then
break;
inc(i);
end;
end;
Hat nur einen Schönheitsfehler. Löscht man eine Datei mit kleiner Nummer, so
wird automatisch aufgefüllt. Z. B. es gibt Test01, Test02 und Test03 und man
löscht Test02, so wird beim nächsten Speichern in Test02 und dann wieder ab
Test04 gespeichert.