Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bestimmte Daten aus txt lesen die durch ; getrennt sind (https://www.delphipraxis.net/15980-bestimmte-daten-aus-txt-lesen-die-durch-%3B-getrennt-sind.html)

bronstein 8. Feb 2004 13:01


Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Das steht in der Datei die umgeformt werden soll

Code:
[b]Nachname;Vorname;PLZ;Ort;Tel;
Mueller;Klaus;12454;Salzburg;02349/1234;
Maier;Peter;12344;München;23489/1233;
Mayer;Erwin;12312;Stuttgart;12334/1234; [/b]

Habe schon folgenden Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
begin
   while pos(';',strl.text) > 0 do
     begin
     listbox1.Items.Add(copy(strl.text, 1, pos(';',strl.text)-1));
     str :=strl.text;
     delete(str,1,pos(';',str));
     strl.text := str
   end;
end;
Möchte jetzt aber nur bestimmte Daten in Variablen schreiben (Nachname,Vorname,Tel).
Mit dem oben genannten Code wird nur die kompletten Daten in einer Listbox untereinander geschrieben, wie kann ich jetzt die Daten (Nachname, Vorname, Tel) in eine neue Textdatei schrieben.

[edit=sakura] [delphi]Tags gesetzt. Mfg, sakura[/edit]

fkerber 8. Feb 2004 13:11

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Hi!

Eine Möglichkeit wäre doch nur den 1., 2. und 5. aus der Listbox zu nehmen und dann eben wieder 6., 7. und 10. usw.

Oder?

Ciao fkerber

Synonym 8. Feb 2004 13:11

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
dann übergehe doch einfach die schritte die du nicht brauchst...der code sieht irgendwie nach meinem aus :-)

gruß

synonym

Luckie 8. Feb 2004 13:12

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
explodeexplode

Synonym 8. Feb 2004 13:17

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
@luckie

meinst du nicht der code ist für dieses kleine beispiel ein wenig zu aufwendig?

der oben genannte code ist viel einfacher und erfüllt genauso seinen zweck..

synonym

bronstein 8. Feb 2004 14:15

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Das muss ich scon mit Code lösen, da dies oben nur ein kleiner Auszug aus der Datei ist. Wie kann ich das jetzt durch Code lösen, mit den Antworten bis jetzt kann ich das nicht. Vielleicht kann mir jemand einen Beispielcode machen.
mfg

Luckie 8. Feb 2004 14:17

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Er hat doch gesagt, dass sein Code nicht genau das tut was er will oder? Und explode macht genau das was er will, es zerlegt den String und packt die teile in ein String Array auf das er leicht zugreifen kann.

hboy 8. Feb 2004 14:24

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;
var
  zeile: Array[0..10] of string[255];

implementation

{$R *.dfm}

const
sep = ';';

procedure zerlegen(s: string);
var
currentitem:integer;
i: integer;

  procedure nextitem;
  begin
    inc(currentitem);
    zeile[currentitem] := '';
  end;

begin
  currentitem :=-1;
  nextitem;
  for i :=1 to length(s) do
  begin
    if s[i] <> sep then
      zeile[currentitem] := zeile[currentitem] + s[i]
    else
      nextitem;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  memo1.Clear;
  zerlegen(edit1.Text);
  for i:=0 to 10 do memo1.Lines.Add(zeile[i]);
end;

end.

hboy 8. Feb 2004 14:48

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
*grummel* warum antwortet denn niemand wenn man was postet :x

Jens Schumann 8. Feb 2004 14:56

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe die Frage als Anregung benutzt und eine kleine Klasse für das Problem gebastelt (siehe strsplit.pas).
Die Klasse TJsStringSplitter verfügt über die Methoden LoadFromFile und LoadFromStream mt denen
die Daten geladen werden. Mit der property FirstLineHasFieldnames kann festgelegt werden, ob
die erste Zeile die Feldnamen enthält. Wenn ja, müssen in DisplayFields die Feldnamen
stehen, die dann angezeigt werden sollen. Über die Items property kann man dan wie folgt auf einen Wert zugreifen:
Delphi-Quellcode:
aStr:=FSplitter.Items[1,'Vorname'];
aStr enthält dann 'Peter'.

Über die property Values kann über die Angabe des SpaltenIndex und des ZeilenIndex zugeriffen werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.
Seite 1 von 2  1 2      

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