Entwickler-Ecke

Sonstiges (Delphi) - Delimiter


Muck22 - Di 07.03.06 19:43
Titel: Delimiter

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button4Click(Sender: TObject);
   var Zeile:String;
   var i:Integer;
begin
 s:=TStringList.Create;
  s.LoadFromFile('C:\daten.txt');
  For i:=0 to s.Count -1
  do begin
   Zeile:=s.Strings[i];
  s.Delimiter:=',';

   s.DelimitedText:=Zeile;
    showmessage(s[0]);
   end;
    s.Free;
end;


Die Datei daten.txt sieht so aus!

Hans,Mustermann,bla,bla,bla
Peter,Müller,bla,bla,bla

Ich war der Meinung, daß die MSBox erst Hans und danach Peter auswirft.
Tatsächlich spuckt sie aber Hans und danach Mustermann aus.

Die Variable i erweitere ich doch um s.Count ?????
Wo liegt denn da mein Denkfehler??? :-(

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Christian S. - Di 07.03.06 20:07

Der Fehler liegt darin, dass Du durch das Setzen des DelimitedText den aus der Datei geladenen Inhalt der Stringliste überschreibst. Wenn die Stringlist vorher so aussah:

Quelltext
1:
2:
Hans,Mustermann,bla,bla,bla
Peter,Müller,bla,bla,bla

sieht sie dann so aus:

Quelltext
1:
2:
3:
4:
5:
Hans
Mustermann
bla
bla
bla

Und damit ist beim nächsten Schleifendurchlauf "Mustermann" in der Messagebox.


Muck22 - Mi 08.03.06 08:35

Klick; da wars der Groschen ist gefallen! :-)
Dann muss ich mir was anderes überlegen!

Vielen Dank!