Einzelnen Beitrag anzeigen

Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Meine Explode-Funktion optimieren

  Alt 3. Dez 2006, 22:24
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!
  Mit Zitat antworten Zitat