Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Inhalt einer txt Datei mit TStringList richtig auslesen? (https://www.delphipraxis.net/134406-inhalt-einer-txt-datei-mit-tstringlist-richtig-auslesen.html)

AlexII 21. Mai 2009 16:49


Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Hallo,

hab eine .txt-Datei mit folgendem Inhalt:

Zitat:

Hans=Mustermann=27=Hesse
Jasmin=Musterfrau=26=NRW
Dieses will ich mittels TStringList auslesen, die Vornamen in einer ListBox anzeigen, den Nachnamen, das Alter und Bundesland in Labels.

Hab das so probiert, hier wird aber das Alter und das Bundesland nicht ausgegeben.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  List:=TStringList.Create;
  try
    List.LoadFromFile('C:\Datei.txt');
    for i := 0 to List.Count-1 do
    ListBox1.Items.Add(List.Names[i]);
    ListBox1.ItemIndex:=0;
    Label1.Caption:=List.Values[ListBox1.Items[ListBox1.ItemIndex]];
    Label2.Caption:=?????
    Label3.Caption:=?????
  finally
    List.Free;
  end;
end;
Wer sagt mir wie ich das anders und vor allem richtig mache?

himitsu 21. Mai 2009 16:57

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Da TStringList nur ein Name=Value-Paar kennt, mußt du selber trennen

Pos('=', ...) + Copy

oder ExplodeExplode

AlexII 21. Mai 2009 18:11

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Hab das jetzt so gemacht, aber irgendwie funktionieren das nicht. :gruebel:
Die Fehlermeldung lautet: ')' erwartet, aber ';' gefunden. Was mache ich falsch? :gruebel:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i, Pos1, Pos2, Pos3, Pos4, Pos5: Integer;
    s, s2: String;
begin
  List:=TStringList.Create;
  try
    List.LoadFromFile('C:\Datei.txt');
    for i := 0 to List.Count-1 do
    {s:=List[i];
    Pos1:=Pos('=', s);
    Pos2:=PosEx('=', s, Pos1+1);
    Pos3:=PosEx('=', s, Pos2+1);
    Pos4:=PosEx('=', s, Pos3+1);
    Pos5:=PosEx('=', s, Pos4+1);
    s2:=Copy(s, Pos1+1, Pos2-Pos1-1);}

    ListBox1.Items.Insert(i, Copy(List[i], Pos('=', List[i])+1, PosEx('=', List[i], Pos('=', List[i])+1) - Pos('=', List[i])-1);
  finally
    List.Free;
  end;
end;
Die txt sieht so aus:

Zitat:

=Hans=Mustermann=27=Hesse=
=Jasmin=Musterfrau=26=NRW=

AlexII 21. Mai 2009 18:15

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Hab schon gefunden, pardo. Hab das jetzt wie folgt:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  List:=TStringList.Create;
  try
    List.LoadFromFile('C:\Datei.txt');
    for i := 0 to List.Count-1 do
    {s:=List[i];
    Pos1:=Pos('=', s);
    Pos2:=PosEx('=', s, Pos1+1);
    Pos3:=PosEx('=', s, Pos2+1);
    Pos4:=PosEx('=', s, Pos3+1);
    Pos5:=PosEx('=', s, Pos4+1);
    s2:=Copy(s, Pos1+1, Pos2-Pos1-1); }

    ListBox1.Items.Insert(i, Copy(List[i], Pos('=', List[i])+1, PosEx('=', List[i], Pos('=', List[i])+1) - Pos('=', List[i])-1));
  finally
    List.Free;
  end;
end;

mkinzler 21. Mai 2009 18:20

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Zitat:

Die Fehlermeldung lautet: ')' erwartet, aber ';' gefunden. Was mache ich falsch?
In welcher Zeile?
Man könnte es auch mit einer 2. StringListe lösen
Delphi-Quellcode:
...
    List2 := TStrimgList.Create;
    List2.Delimiter := '=';
    for i := 0 to List.Count-1 do
    begin
        List2.DelimitedText := List[i];
        ...

AlexII 21. Mai 2009 18:32

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Wow... jetzt hast du mich ganz durcheinander gebracht :roteyes:

Und wie geht der Code weiter?

mkinzler 21. Mai 2009 18:33

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Der Vorname steht dann in List2[1], der Nachname in List2[2] usw.

AlexII 21. Mai 2009 18:45

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Ja... ich verstehe nicht wie ich die Daten in die ListBox bekomme? :gruebel:

mkinzler 21. Mai 2009 18:49

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Delphi-Quellcode:
ListBox1.Items.Insert(i, List2{1]);

AlexII 21. Mai 2009 18:54

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?
 
Hab das jetzt so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  List:=TStringList.Create;
  List2:=TStringList.Create;
  List2.Delimiter:='=';
  try
    List.LoadFromFile('C:\Datei.txt');
    for i := 0 to List.Count-1 do
    List2.DelimitedText:=List[i];

    ListBox1.Items.Insert(i, List2[1]);
Bekomme aber zwei Fehlermeldungen:

Zitat:

1. FOR-Schleifenvariable 'i' kann nach dem Durchlauf undefiniert sein
2. Zeile kann nicht eingefügt werden


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:39 Uhr.
Seite 1 von 2  1 2      

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