Hallo,
erstmal danke für die Antworten! Ich habe jetzt selber eine kleine Funktion geschrieben und stelle diese mal hier
rein. Vielleicht findet ihr ja noch Fehler oder habt Verbesserungsvorschläge
Delphi-Quellcode:
Function StringPerMask(Eingabe, Maske:String; MaskSubString:String;Frontzeichen:Boolean=false):String;
var PosOfTrennerinMask, PosOfTrennerinEingabe, Trenneranzahl:integer;
TrenneranzahlEingabe:integer;
Trenner, Abschlusstrenner:String;
Ausgabe:String;
i:integer;
begin
//Eingabe von Leerzeichen befreien
Eingabe:=trim(Eingabe);
//Wo befindet sich der Trenner und Abschlusstrenner
PosOfTrennerinMask := Pos(MaskSubString, Maske)-1;
Trenner:=copy(Maske,PosOfTrennerinMask,1);
Abschlusstrenner:=copy(Maske,PosOfTrennerinMask+length(MaskSubString)+1,1);
//Wie oft kommt Trenner in Maske vor?
Trenneranzahl:=0;
for i := 1 to PosOfTrennerinMask do begin
if Maske[i]=Trenner then inc(Trenneranzahl);
end;
TrenneranzahlEingabe:=0;
//Wo befindet sich der Trenner in der Eingabe?
for i := 1 to length(Eingabe) do begin
if Eingabe[i]=Trenner then inc(TrenneranzahlEingabe);
if TrenneranzahlEingabe=Trenneranzahl then begin
PosOfTrennerineingabe:=i;
break;
end;
end;
//Ausgabestring zusammensetzen
Ausgabe:='';
for I := Posoftrennerineingabe+1 to length(eingabe) do begin
if (Eingabe[i]<>Trenner) and (Eingabe[i]<>Abschlusstrenner) then begin
Ausgabe:=Ausgabe+Eingabe[i];
end else break;
end;
//Falls Kein Fronttrennzeichen, wird das erste Zeichen der Eingabe übernommen
if (Posoftrennerineingabe=1) and Frontzeichen then insert(Eingabe[1],Ausgabe,1);
result:=Ausgabe;
end;
// VERWENDUNG
{
Eingabe=Irgendeine Eingabe des Benutzers z.B. Reinhold Maier - Der Mai.mp3
Maske=Die Maskenvorlage z.B. %Artist%-%Titel%.mp3
MaskSubString=Welcher Teil der Maske soll ausgegeben werden z.B. %Artist%
}
Delphi is ......... DELPHI!!