Einzelnen Beitrag anzeigen

Markus
(Gast)

n/a Beiträge
 
#1

Platzhalter in einem String...

  Alt 8. Jul 2004, 20:49
Hallo,

ich weiß nicht ob es sowas schon gibt, aber ich habe eine Funktion geschrieben, die aus einer Maske einen Dateinamen generiert. Hier die Funktion:

Delphi-Quellcode:
function string2filename(maske, interpret, album, titel, track: string): string;
var
  i, p: integer;
  platzhalter,bezeichnung: TStringList;
begin
  platzhalter := TStringList.create; //erstellen der Stringlisten
  bezeichnung := TStringList.Create;

  platzhalter.Add('%I'); //Hinzufügen der gewünschten Werte u. Bezeichnungen
  bezeichnung.Add(interpret);

  platzhalter.Add('%A');
  bezeichnung.Add(album);

  platzhalter.Add('%T');
  bezeichnung.Add(titel);

  platzhalter.Add('%E');
  bezeichnung.Add('mp3');

  platzhalter.Add('%N');
  bezeichnung.Add(track);


  for i := 0 to platzhalter.Count - 1 do //Ersetzen der Platzhalter im Maskenstring durch die realen Werte
  begin
    p := pos(platzhalter.Strings[i], maske);
    if p <> 0 then
    begin
      delete(maske, p, 2);
      insert(bezeichnung.Strings[i], maske, p);
    end;
  end;

platzhalter.Free;
bezeichnung.Free;

result := maske;
end;
und hier ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(string2filename('%N.%I - %T.%E', 'Otto Mustermann', 'Mein erstes Album', 'Mein Lied', '1'));
end;
Man kann die Funktion beliebig ändern, d.h. neue Werte hinzufügen oder alte löschen.

Für Vorschläge bin ich offen

[edit=Matze]Code formatiert. Mfg, Matze[/edit]
  Mit Zitat antworten Zitat