Ich hätte da was (uralt und wohl nicht State of the Art)
Delphi-Quellcode:
procedure GetListofGenerationFiles(
const muster:
string;
var liste:tstringlist);
begin
liste.Clear;
Liste:=DATEILISTE(muster+'
.G*');
liste.Sort;
end;
function GENERATEGENERATIONFILE(muster:
string):
string;
var
i : integer;
dummy:
string;
dint :
string;
fl : tstringlist;
begin
i:=length(muster);
while (i>0)
and (muster[i]<>'
.')
and (muster[i]<>'
\')
do dec(i);
if i>0
then begin
if muster[i]='
\'
then dummy:=muster
else dummy:=copy(muster,1,i-1);
end
else
dummy:=muster;
fl:=tstringlist.create;
GetListofGenerationFiles(dummy,fl);
if fl.count=0
then i:=0
else begin
i:=strtoint(copy(fl[fl.count-1],length(fl[fl.count-1])-1,2));
i:=i+1;
end;
dint:=inttostr(i);
while length(dint)<2
do dint:='
0'+dint;
dummy:=dummy+'
.G'+dint;
fl.free;
result:=dummy;
end;
{-- GENERATEGENERATIONFILE -----------------------------}
Das schaut nach Dateien MUSTER+'.Gxxx' und liefert die nächste Nummer, bzw. den Dateinamen zurück.
Ich seh' gerade, da fehlt noch ein fl.sort sonst ist nicht sichergestellt, daß die Einträge wirklich sortiert sind.
Hinter DATEILISTE verbirgt sich ein getfirst/getnextfile.
Gruß
K-H