Dazu müsstest du einen einfachen Parser schreiben, der für jede "Variable" (zB. %TITLE%) den passenden Part erstellt und zu einem Builder hinzufügt.
Der 'Parser' sieht dann z.B. so aus:
Delphi-Quellcode:
Filename := Replace (Filename,'%TITLE%',MyMusic.Title,[rfReplaceAll]);
Filename := Replace (Filename,'%INTERPRET%',MyMusic.Interpret,[rfReplaceAll]);
Filename := Replace (Filename,'%DATE%',DateToStr(Date),[rfReplaceAll]);
...
Allerdings ist das kein Parser, sondern etwas viel einfacheres: Ein String-Austausch-O-Mat.
Diese Vorgehensweise halte ich persönlich für die flexibelste, weil jederzeit Variablen (bzw. eigentlich ja Platzhalter) hinzugefügt werden können.
Eine fortlaufende Numerierung? Nennen wir sie '%NUMBER%'
Delphi-Quellcode:
Filename := Replace (Filename,'%NUMBER%',IntToStr(Number),[rfReplaceAll]);
Inc(Number);
Das gleiche, nur hier soll die Nummer nur erhöht werden, wenn der Platzhalter existiert.
Delphi-Quellcode:
if Pos ('%NUMBER%', Filename)>0 then
begin
Filename := Replace (Filename,'%NUMBER%',IntToStr(Number),[rfReplaceAll]);
inc(Number);
end;
Usw.
Du kannst das dann auch auf die Spitze treiben, indem Du einen Skriptinterpreter einbindest. Dann kann der Anwender seine eigenen Namensregeln festlegen. Braucht zwar kaum einer, aber Spaß macht es trotzdem.