Hallo,
ich habe selbst eine Explode-Funktion geschrieben, bei der der Separator beliebig lang sein darf.
Nur ich weiß nicht, ob die so das non-plus-ultra ist, ob man sie so lassen kann, oder unbedingt überarbeiten muss.
Die aus der CodeLib kenne ich, aber ich brauche (wollte) meine eigene haben. Bitte um Tipps / Kritik. Danke!
Delphi-Quellcode:
function TForm1.Explode(p, Separator: PChar): String;
var
i, j, seplen, strlen: Integer;
sl,sl2:TStringList;
begin
sl:=TStringList.Create;
sl2:=TStringList.Create;
strlen:=Length(Edit1.Text)-1;
SepLen:=Length(Separator)-1;
sl2.Add(IntToStr(0));
for i:=0 to strlen do
begin
if (p[i] = separator[0]) and (p[i+seplen] = separator[seplen]) then
begin
sl.add(IntToStr(i));
sl2.add(IntToStr(i+seplen+1));
end;
end;
for i:=0 to sl.Count-1 do
begin
for j:=StrToInt(sl2.Strings[i]) to StrToInt(sl.Strings[i])-1 do
begin
result:=result+p[j];
end;
result:=result+' ';
end;
for i:=strtoint(sl2.Strings[sl2.Count-1]) to strlen do
begin
result:=result+p[i];
end;
sl.Free;
sl2.Free;
result:=result;
end;
Danke nochmals!