Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

Re: Textdatei in verschiedene Variablen

  Alt 3. Nov 2003, 15:43
So schwer ist das doch nicht.

Die Funktion Explode aus der CodeLib:
Delphi-Quellcode:
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray{Array of String};
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;
Und ein Beispiel zu deren Verwendung:
Delphi-Quellcode:
Var S: String;
  SA: Array of String;

S := '1001|729|999|500000|0'; {S einlesen}
SA := Explode('|', S); {S aufsplitten und in SA speichern}
                              {'|' = Zeichen mit dei Werte getrennt sind}

SA[0] = '1001'                {aufgesplittete Werte}
SA[1] = '729'
SA[2] = '999'
SA[3] = '500000'
SA[4] = '0'
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat