Falls du noch nicht zufrieden bist, dann Versuchs doch mal mit dieser von mir geschriebenen
Funktion. Am besten trennst du aber anstatt mit Leerzeichen die Einträge mit einem Komma.
Beispiel Aufruf .
showmessage( token('HP 730C,12.00 Euro,schwarz', ',' , 2) );
würde 12.00 Euro ausgeben;
showmessage( token('HP 730C,12.00 Euro,schwarz', ',' , 3) );
würde schwarz ausgeben;
showmessage( token('HP 730C,12.00 Euro',#32,2) );
würde "730C,12.00" ausgeben;
Delphi-Quellcode:
--------------------------------------------------------------------------------
function Token(StrVar :string ;StrSearch : Char; Posit : byte) : String;
var ZaehlPos,Maxlen : ^Integer;
i : Integer;
tmpstr : ^string;
begin
New(ZaehlPos);
New(maxLen);
new(tmpstr);
try
(* Result = ''*)
Token:='';
maxlen^:=length(Strvar);
if maxlen^ = 0 then exit;
case posit of
1 : if pos(StrSearch,StrVar) = 0 then Token:=StrVar else
Token:=copy(strVar,1,pos(StrSearch,StrVar)-1);
2..255: begin
zaehlpos^:=1;
for i:= 1 to maxlen^ do
begin
if strvar[i] = StrSearch then zaehlpos^:=zaehlpos^+1;
if zaehlpos^ = Posit then break;
end; {for i}
tmpstr^:=copy(StrVar,i+1,maxlen^-i+1);
if pos(StrSearch,TmpStr^) > 0 then
Token:= copy(TmpStr^,1,pos(StrSearch,TmpStr^)-1)
else Token:=tmpstr^;
end; {for}
end; {case}
finally
dispose(Zaehlpos);
dispose(maxLen);
dispose(tmpstr);
end;
end;
[edit=Luckie]Delphi-tags eingefügt. Beim nächsten mal bitte selber machen. Mfg, Luckie[/edit]