![]() |
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: |
Re: CSV auslesen in EDIT eintragen
also...
such mal nach "explode" dann:
Delphi-Quellcode:
das sollte alle Namen aus zwei Dateien holen, wenn die beide folgendes Format haben:
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; Name 1,Name 2 und danach in F stehen Die zufällig auslesen geht so:
Delphi-Quellcode:
EditX.Text:=F[Random(F.Count)];
|
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... |
Re: CSV auslesen in EDIT eintragen
Schau dir mal das an:
![]() |
Re: CSV auslesen in EDIT eintragen
Zitat:
Zitat:
|
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]);
|
Re: CSV auslesen in EDIT eintragen
Also ich hab mir selbst geholfen...
Delphi-Quellcode:
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.
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; |
Re: CSV auslesen in EDIT eintragen
Zitat:
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; |
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... |
Re: CSV auslesen in EDIT eintragen
Zitat:
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 02:55 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 by Thomas Breitkreuz