![]() |
Platzhalter in einem String...
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:
und hier ein Beispiel:
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;
Delphi-Quellcode:
Man kann die Funktion beliebig ändern, d.h. neue Werte hinzufügen oder alte löschen.
procedure TForm1.Button1Click(Sender: TObject);
begin showmessage(string2filename('%N.%I - %T.%E', 'Otto Mustermann', 'Mein erstes Album', 'Mein Lied', '1')); end; Für Vorschläge bin ich offen :-) [edit=Matze]Code formatiert. Mfg, Matze[/edit] |
Re: Platzhalter in einem String...
Hi,
ich finde Format wesentlich einfacher:
Delphi-Quellcode:
Chris
format('%s - %s', ['Otto','Zehn kleine Ottifanten']);
|
Re: Platzhalter in einem String...
Wenn du mal in der OH schmökerst findest du auch andere Formatierungen zum Bleistift für Dezimalzahlen.
p.s.: Die Funktion gibt es in ähnlicher Art auch im .Net FrameWork als statische Funktion von System.String.
Code:
String[b][color=#ff0000].[/color][color=#3600aa]Format[/color][color=#ff0000]([/color][/b][color=#ad0000]"{0} - {1}"[/color]
[b][color=#ff0000],[/color][/b][color=#3600aa]new[/color] String[b][color=#ff0000][] {[/color][/b][color=#ad0000]"Otto"[/color][b][color=#ff0000], [/color][/b][color=#ad0000]"Zehn kleine Ottifanten"[/color][b][color=#ff0000]});[/color][/b] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz