Thema: Delphi funktion explode?

Einzelnen Beitrag anzeigen

paulus11

Registriert seit: 20. Feb 2010
8 Beiträge
 
#1

funktion explode?

  Alt 20. Feb 2010, 11:56
Hallo liebe Delphi-Prax'ler

ich hätte einmal eine Frage zu der Funktion "explode" mit diesem Quelltext:

Delphi-Quellcode:
Function explode(const Separator,S: string;Limit:Integer = 6):TStringDynArray;
var SepLen: Integer;
F, P:PChar;
ALen, Index: Integer;
Begin
  SetLength(result,0);
  If (S='') or(Limit<0) then Exit;
  If Separator=''Then
  Begin
    SetLength(Result,1);
    Result[0]:=S;
    Exit;
  End;
  SepLen:=Length(Separator);
  Alen:=Limit;
  SetLength(Result,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(Result,Alen);
    end;
    SetString(Result[Index],F,P-F);
    Inc(Index);
    if p^ <>#0 then inc(p, seplen);
    end;
    if index < Alen Then Setlength(Result,Index);
End;
Ein Freund hatte mir gesagt, das dabei Zeichenketten in ein dynamisches String-Array aufgeteilt werden.

Doch was heißt das jetzt genau? Was macht die Funktion im Allgemeinen?

Ich weiß nicht ob ihr dafür Zeit habt,
aber würde mir jemand vielleicht sogar erklären was in jeder Zeile bzw. in den jeweiligen Abschnitten so ungefähr abläuft?

Das würde mir wirklich sehr weiterhelfen.
Ich hoffe es findet sich jemand, der so nett ist.

Liebe Grüße

[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat