function GetMaskedString(Text:
string; Mask:
string; MaskPart:
string):
string;
var
TrennerB:
string;
TrennerE:
string;
TrennerEPos: integer;
TrennerBPos: integer;
TrennerBCountPosition: integer;
TrennerBCurrent: integer;
i: integer;
s:
string;
begin
//Anfangstrenner ermitteln
TrennerBPos:=pos(MaskPart,Mask)-1;
TrennerB:=copy(Mask,TrennerBPos,1);
while (trennerbpos>0)
and (Trim(TrennerB)='
')
do
begin
dec(TrennerBPos);
TrennerB:=copy(Mask,TrennerBPos,1);
end;
if (TrennerBPos>0)
then begin //Der Anfangstrenner ist ein Zeichen
//Endtrenner ermitteln
TrennerEPos:=pos(MaskPart,Mask)-1+length(MaskPart)+1;
TrennerE:=copy(Mask,TrennerEPos,1);
while (TrennerEPos<length(Mask))
and (Trim(TrennerE)='
')
do
begin
inc(TrennerEPos);
TrennerE:=copy(Mask,TrennerEPos,1);
end;
//Position des gesuchten Trenners ermitteln
TrennerBCountPosition:=0;
for I := 0
to TrennerBPos
do
begin
if (Mask[i]=TrennerB)
then inc(TrennerBCountPosition);
end;
//Ergebnis:
TrennerBCurrent:=0;
for i := 0
to length(Text)-1
do
begin
if (Text[i]=TrennerB)
then inc(TrennerBCurrent);
if (TrennerBCurrent=TrennerBCountPosition)
then //Jetzt handelt es sich um den richtigen!
begin
s:=copy(Text,i+1,length(text));
if (trim(TrennerE)<>'
')
then s:=copy(s,1,pos(trim(TrennerE),s)-1);
break;
end;
end;
end else begin //Der Anfangstrenner existiert nicht, ist folglich der Anfang des Strings
//Endtrenner ermitteln
TrennerEPos:=pos(MaskPart,Mask)-1+length(MaskPart)+1;
TrennerE:=copy(Mask,TrennerEPos,1);
while (TrennerEPos<>length(Mask))
and (Trim(TrennerE)='
')
do
begin
inc(TrennerEPos);
TrennerE:=copy(Mask,TrennerEPos,1);
end;
//Ergebnis ermitteln
s:=trim(copy(text,1,pos(TrennerE,text)-1));
end;
//Resultat übergebem
result:=s;
end;