Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Textdatei in verschiedene Variablen (https://www.delphipraxis.net/11274-textdatei-verschiedene-variablen.html)

Zeitkritiker 3. Nov 2003 12:42


Textdatei in verschiedene Variablen
 
ich weis ähnliche themen wurden hier schon öfter besprochen, bekomme es aber trotzdem nicht hin. (warscheinlich weil ich grad delphi versuche zu lernen :wink: )

ich habe eine textdatei die folgendermaßen aufgebaut ist:

1001|729|999|500000|0

ich möchte nun 1001, 729, 999, 500000, 0 jeweils in eine extra variable übernehmen. kann mir das jemand mal etwas genauer erklähren? bekomme es einfach nicht hin.

danke im vorraus für eure hilfe :thuimb:

Luckie 3. Nov 2003 13:05

Re: Textdatei in verschiedene Variablen
 
In der Code-Lib nach ExplodeExplode suchen.

Zeitkritiker 3. Nov 2003 13:13

Re: Textdatei in verschiedene Variablen
 
Zitat:

Zitat von Luckie
In der Code-Lib nach ExplodeExplode suchen.

danke, werd mir das mal ansehen 8)

Zeitkritiker 3. Nov 2003 13:16

Re: Textdatei in verschiedene Variablen
 
sorry, ist für mich irgendwie schwer zu verstehen. kann das vielleicht jemand an meinem beispiel erläutern? :oops: :oops: :oops:

himitsu 3. Nov 2003 14:43

Re: Textdatei in verschiedene Variablen
 
So schwer ist das doch nicht. :zwinker:

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'

Wormid 3. Nov 2003 15:32

Re: Textdatei in verschiedene Variablen
 
Oder Du benutzt die Delphi-Funktion "ExtractStrings", die irgendwie kaum jemand zu kennen scheint :roll: (zumindestens ab Delphi 5 gibt es die glaube ich).

Delphi-Quellcode:
var S: String;
    Items: TStringList;
    Count: Integer;
begin
  S := '1001|729|999|500000|0'; // Der Beispielstring...
  Items := TStringList.Create;

  // Delphi-eigene Funktion, gibt Anzahl der Items als Result zurück!
  Count := ExtractStrings(['|'], [], PChar(S), Items); // Count nur zur Demo, ist hier ungenutzt.

  // Der Zugriff funktioniert dann so: (Beispiel)
  Edit1.Text := Items[2]; // gibt '999' zurück

  Items.Free;
end;
:hi:

Zeitkritiker 3. Nov 2003 15:37

Re: Textdatei in verschiedene Variablen
 
danke für eure hilfe :thuimb: jetzt ist alles klar und deutlich und funktioniert :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz