Ich habe eine Routine CreateTempFile geschrieben, die einen Dateinamen für eine Temporäre Datei erzeugen soll:
CreateTempFile(
Nummer der temporären Datei,
index
Mindestanzahl der Stellen der Nummernausgabe,
digits (=4)
Tildenersatz,
divider (='~')
VorlageString
fmt (='~wdpai~$.tmp')
): string;
Die einzelnen Zeichen des VorlageStrings sollen wie folgt behandelt werden:
~ wird durch den Wert des Parameters
divider ersetzt
$ wird durch die Nummernausgabe (in HEX) ersetzt
alle anderen Zeichen werden in den Dateinamen übernommen.
Delphi-Quellcode:
function CreateTempFile(index:word;digits:byte=4;divider:char='~';fmt:string='~wdpai~$.tmp'):string;
var i: byte;
begin
for i := 1 to Length(fmt) do
if fmt[i]='~' then Result := Result+divider
else if fmt[i]='$' then Result := Result+IntToHex(index,digits)
else Result := fmt[i];
end;
Jetzt das Problem:
Ich habe die Funktion getestet:
CreateTempFile(0,2,'#','tmp$.~~~')
Das Ergebnis war jedoch icht wirklich befriedigend: '.###'
Immerhin haben die Tilden gefunzt - und der Punkt.
Doch vom Rest keine Spur.