Delphi-PRAXiS

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 14: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 14: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 14: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 14:12

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

Synonym 8. Feb 2004 14: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 15: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 15: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 15: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 15: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 15: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.

hboy 8. Feb 2004 18:44

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
echt nicht schlecht :thuimb:.

Pseudemys Nelsoni 8. Feb 2004 18:58

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
wozu hast du 2mal "var" benutzt hboy?

cyberkiller0072001 8. Feb 2004 20:18

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Also ich denke, man könnte das Problem geschickter mit inis Lösen:
[Nachname]
Vorname=Marcel
Straße=Tollerweg
usw..

MfG Daniel

Jens Schumann 9. Feb 2004 10:00

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

Zitat von cyberkiller0072001
Also ich denke, man könnte das Problem geschickter mit inis Lösen:
[Nachname]
Vorname=Marcel
Straße=Tollerweg
usw..

MfG Daniel

kann schon sein. Aber was machst Du, wenn Du die Daten in der Form geliefert bekommst und Du
keinen Einfluß auf das Format hast ???

Luckie 9. Feb 2004 15:04

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Desweiteren sind Ini's nur für kleine Datenmengen geeignet.

hboy 9. Feb 2004 16:52

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

Zitat von Pseudemys Nelsoni
wozu hast du 2mal "var" benutzt hboy?

Weil ich die Variablendeklaration vorher bei der implementation drin hatte und sie nur markiert und hochgezogen hab. Ist aber unnötig. aber egal.

cyberkiller0072001 10. Feb 2004 16:11

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Das ist schlecht...
Was heißt kleine Datenmengen?
Und was passiert ansonsten?
Das könnte meinem Projekt den Rest gebn...

bronstein 10. Feb 2004 17:05

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Möchte jetzt noch, wenn man die gleiche PLZ hat dass ein Zähler um 1 erhöht wird

bronstein 10. Feb 2004 17:07

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

Zitat von hboy
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.

Möchte jetzt noch, wenn man die gleiche PLZ hat dass ein Zähler um 1 erhöht wird

MrKnogge 10. Feb 2004 17:11

Re: Bestimmte Daten aus txt lesen die durch ; getrennt sind
 
Du vergleichst sie in einem if-zweig miteinander und wenn sie gleich sind, erhlst du eie variable !

Das ganze packst du am besten in eine for-Schleife :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.

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-2025 by Thomas Breitkreuz