AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Inhalt einer txt Datei mit TStringList richtig auslesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt einer txt Datei mit TStringList richtig auslesen?

Ein Thema von AlexII · begonnen am 21. Mai 2009 · letzter Beitrag vom 21. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 16:49
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 16:57
Da TStringList nur ein Name=Value-Paar kennt, mußt du selber trennen

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

oder ExplodeExplode
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:11
Hab das jetzt so gemacht, aber irgendwie funktionieren das nicht.
Die Fehlermeldung lautet: ')' erwartet, aber ';' gefunden. Was mache ich falsch?

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=
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:15
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;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:20
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];
        ...
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:32
Wow... jetzt hast du mich ganz durcheinander gebracht

Und wie geht der Code weiter?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:33
Der Vorname steht dann in List2[1], der Nachname in List2[2] usw.
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:45
Ja... ich verstehe nicht wie ich die Daten in die ListBox bekomme?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:49
ListBox1.Items.Insert(i, List2{1]);
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Inhalt einer txt Datei mit TStringList richtig auslesen?

  Alt 21. Mai 2009, 18:54
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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