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 CSV auslesen in EDIT eintragen (https://www.delphipraxis.net/56758-csv-auslesen-edit-eintragen.html)

Knotti2005 10. Nov 2005 16:38


CSV auslesen in EDIT eintragen
 
:dance: Hallo Leute, :?:

wie ihr wisst bin ich Anfänger und hab da ein paar Fragen...

:coder2:

Währe nett wenn ihr gleich mit Code Beispielen antworten könntet...

Ich habe hier eine Form mit 6 Edit Buttons in diese soll per Zufallsgenerator Namen
aus 2 csv dateien (jeweils 3 stück in jeder Zeile einer) eins pro Edit Feld eingefügt werden.

Gibt es dafür eien Möglichkeit, Ideen?

Danke schoneinmal...


:wiejetzt:

Kurzgesagt 2 CSV Dateien auslesen und Namen per Zufall eintragen...


:dance: :dance: :dance: :dance: :dance: :dance:

glkgereon 10. Nov 2005 17:07

Re: CSV auslesen in EDIT eintragen
 
also...

such mal nach "explode"

dann:
Delphi-Quellcode:
var T: TStringDynArray;
    F, F2: TStringList;
    i:Integer;
begin
  F:=TStringList.Create;
  F.LoadFromFile('Datei');
  F2:=TStringList.Create;
  F2.LoadFromFile('Datei2');
  F2.AddStrings(F);
  F.Clear;
  for i:=0 to F2.Count-1 do
    begin
    T:=explode(',',F2[i]);
    F.Add(T[0]);
    F.Add(T[1]);
    end;
  F2.Free;
end;
das sollte alle Namen aus zwei Dateien holen, wenn die beide folgendes Format haben:
Name 1,Name 2

und danach in F stehen

Die zufällig auslesen geht so:
Delphi-Quellcode:
EditX.Text:=F[Random(F.Count)];

Knotti2005 10. Nov 2005 17:44

Re: CSV auslesen in EDIT eintragen
 
Erzeugen
[Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'TStringDynArray'
[Warnung] Unit1.pas(47): FOR-Schleifenvariable muss eine einfache lokale Variable sein
[Fehler] Unit1.pas(49): Undefinierter Bezeichner: 'explode'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
...

Will euch ja nicht Nerven knnt ihr mir nocheinmal helfen...

Kinimod8 10. Nov 2005 17:47

Re: CSV auslesen in EDIT eintragen
 
Schau dir mal das an: explode() :wink:

glkgereon 10. Nov 2005 20:12

Re: CSV auslesen in EDIT eintragen
 
Zitat:

Zitat von Knotti2005
Erzeugen
[Fehler] Unit1.pas(30): Undefinierter Bezeichner: 'TStringDynArray'
[Warnung] Unit1.pas(47): FOR-Schleifenvariable muss eine einfache lokale Variable sein
[Fehler] Unit1.pas(49): Undefinierter Bezeichner: 'explode'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
...

Will euch ja nicht Nerven knnt ihr mir nocheinmal helfen...

Zitat:

Zitat von glkgereon
such mal nach "explode"

dann:

immer schön der Reihenfolge nach ;)

Knotti2005 10. Nov 2005 21:32

Re: CSV auslesen in EDIT eintragen
 
so richtig blick ich da nett durch...

Ich hab jetzt alle Fehlermeldungen weg außer

Undifinierter Bezeichner: Explode

Delphi-Quellcode:
    T:=explode(',',F2[i]);

Knotti2005 11. Nov 2005 18:09

Re: CSV auslesen in EDIT eintragen
 
Also ich hab mir selbst geholfen...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var CSVDatei : TStringList;
begin
  randomize;
  CSVDatei := TStringList.Create;
  CSVDatei.LoadFromFile('c:\mycdsdatei.cvs');
  Edit1.Text := CSVDatei[random(CSVDatei.Count)];
  Edit2.Text := CSVDatei[random(CSVDatei.Count)];
  Edit3.Text := CSVDatei[random(CSVDatei.Count)];
  Edit4.Text := CSVDatei[random(CSVDatei.Count)];
  Edit5.Text := CVVDatei[random(CSVDatei.Count)];
  Edit6.Text := CSVDatei[random(CSVDatei.Count)];
  CSVDatei.Free;
end;
Nun diese Beispiel ist für nur eine Datei wie bringe ich es dazu 2 Dateien auszulesen. Die Namen sollen in die Edit Felder aber nicht doppelt erscheinen.

glkgereon 11. Nov 2005 18:15

Re: CSV auslesen in EDIT eintragen
 
Zitat:

Zitat von Knotti2005
Also ich hab mir selbst geholfen...

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var CSVDatei : TStringList;
begin
  randomize;
  CSVDatei := TStringList.Create;
  CSVDatei.LoadFromFile('c:\mycdsdatei.cvs');
  Edit1.Text := CSVDatei[random(CSVDatei.Count)];
  Edit2.Text := CSVDatei[random(CSVDatei.Count)];
  Edit3.Text := CSVDatei[random(CSVDatei.Count)];
  Edit4.Text := CSVDatei[random(CSVDatei.Count)];
  Edit5.Text := CVVDatei[random(CSVDatei.Count)];
  Edit6.Text := CSVDatei[random(CSVDatei.Count)];
  CSVDatei.Free;
end;
Nun diese Beispiel ist für nur eine Datei wie bringe ich es dazu 2 Dateien auszulesen. Die Namen sollen in die Edit Felder aber nicht doppelt erscheinen.

Delphi-Quellcode:
var F, F2: TStringList;
    i, ID:Integer;
begin
  F:=TStringList.Create;   //Datei 1
  F.LoadFromFile('Datei');
  F2:=TStringList.Create;  //Datei 2
  F2.LoadFromFile('Datei2');
  F.AddStrings(F2);        //Zusammenführen
  F2.Free;  //Datei 2 kann weg
  for i:=1 to 6 do //für 6 Edits
    begin
    ID:=Random(F.Count); //Index raussuchen
    TEdit(FindComponent('Edit'+IntToStr(i))).Text:=F[ID]; //Text in Edit
    F.Delete(ID); //Text auf SL löschen
    end;
  F.Free;
end;

Knotti2005 11. Nov 2005 20:03

Re: CSV auslesen in EDIT eintragen
 
Ich hoffe ich nerve nicht..

Ich habe nun 24 Editboxen...

Aber immernoch 6 Namen pro 2 Dateien...

Delphi-Quellcode:
//hab ich ersetzt
 for i:=1 to 24 do //für 24 Edits

Nun bekomme ich beim Ausführen

Listenindex überschreitet das Maximum...

glkgereon 11. Nov 2005 20:06

Re: CSV auslesen in EDIT eintragen
 
Zitat:

Zitat von Knotti2005
Ich hoffe ich nerve nicht..

Ich habe nun 24 Editboxen...

Aber immernoch 6 Namen pro 2 Dateien...

Delphi-Quellcode:
//hab ich ersetzt
 for i:=1 to 24 do //für 24 Edits

Nun bekomme ich beim Ausführen

Listenindex überschreitet das Maximum...

Klasse.

Du willst 12 Namen auf 24 Edits aufteilen, und nichts darf doppelt vorkommen?

:wiejetzt:

Wenns doppelt sein darf, einfach
F.Delete(ID); //Text auf SL löschen
rausnehmen


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 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