Thema: Delphi Stringmanipulation

Einzelnen Beitrag anzeigen

violinenspieler1000

Registriert seit: 22. Apr 2008
15 Beiträge
 
#8

Re: Stringmanipulation

  Alt 2. Jul 2008, 13:07
Oh, entschuldigung, das habe ich vergessen zu sagen:

Ich habe aus Explode eine Prozedur gemacht und das Ergebnis in einem array ergeb gespeichert:


Es sieht ungefähr so aus.

Code:

procedure TForm1.Explode(const Separator, S: string; Limit: Integer = 0);
var
  SepLen: Integer;
  F, P: PChar;
  ALen, Index: Integer;
begin
  SetLength(ergeb, 0);
  if (S = '') or (Limit < 0) then Exit;
  if Separator = '' then
  begin
    SetLength(ergeb, 1);
    ergeb[0] := S;
    Exit;
  end;
  SepLen := Length(Separator);
  ALen := Limit;
  SetLength(ergeb, ALen);

  Index := 0;
  P := PChar(S);
  while P^ <> #0 do
  begin
    F := P;
    P := AnsiStrPos(P, PChar(Separator));
    if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F);
    if Index >= ALen then
    begin
      Inc(ALen, 5);
      SetLength(ergeb, ALen);
    end;
    SetString(ergeb[Index], F, P - F);
    Inc(Index);
    if P^ <> #0 then Inc(P, SepLen);
  end;
  if Index < ALen then SetLength(ergeb, Index);
end;
  Mit Zitat antworten Zitat