Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DataSet aus CSV füllen (https://www.delphipraxis.net/206811-dataset-aus-csv-fuellen.html)

Graw 1. Feb 2021 12:34

DataSet aus CSV füllen
 
Hallo,

ich würde gerne ein DBGrid mit den Daten aus einer CSV füllen.

So wie ich es verstanden habe, muss ich ein DBGrid erstellen mit einer DataSource und dazu ein DataSet.
Das DataSet muss ich dann mit den Daten aus der CSV füllen.
Dazu habe ich eine StringList in der die Daten der CSV geladen wurden.

Doch wie bekomme ich nun die Daten aus der StringList in das DataSet?

Danke.

mkinzler 1. Feb 2021 12:40

AW: DataSet aus CSV füllen
 
Es gibt DataSet-Implemnetierungen, welche direkt aus CSV-Dateien laden können.

Z.B. das JvCSVDataSet von JediVCL

https://github.com/project-jedi/jvcl

haentschman 1. Feb 2021 13:52

AW: DataSet aus CSV füllen
 
Hallöle...:P
Du willst was lernen? :zwinker: Das JvCSVDataSet macht quasi nix anderes. Du willst ja verstehen wie das passiert..oder? :wink:

Du brauchst:
1. Grid
2. Datasource - mit Grid verbinden
3. ClientDataset - mit Datasource verbinden
-> Felder definieren (Inhalt der CSV (Header))
4. Open des ClientDatasets
5. CSV lesen (1. TStringList jede Zeile)
6. Jede Zeile lesen (2. Stringlist oder Split etc.)
7. Jeden Wert in das dafür vorgesehende Feld eintragen.
8. ...fertsch :zwinker:

:wink:

Graw 2. Feb 2021 11:05

AW: DataSet aus CSV füllen
 
Hallo,

genau, ich würde die Schritte gerne selber programmieren.
Derzeit ist das Problem das ich eine Fehlermeldung beim Dataset.Open bekomme.

Dataset: Missing data provider or datapacket

haentschman 2. Feb 2021 11:16

AW: DataSet aus CSV füllen
 
Zitat:

Dataset: Missing data provider or datapacket
welches DataSet?

Graw 2. Feb 2021 12:19

AW: DataSet aus CSV füllen
 
Als Beispiel habe ich eine Data.csv.

In der habe ich Feld1;Feld2;Feld3; als Header.

1. Grid
2. Datasource - mit Grid verbinden
3. ClientDataset - mit Datasource verbinden

Diese Punkte habe ich fertig.

-> Felder definieren (Inhalt der CSV (Header))
Muss ich hier bei FieldDefs -> Feld1, Feld2, Feld3 eintragen?
Muss bei Field Name Data.csv eingetragen werden?

Meine Fehlermeldung hat sich nämlich geändert zu:
Keine Übereinstimmung im Datenpaket.

himitsu 2. Feb 2021 13:02

AW: DataSet aus CSV füllen
 
Für Sowas benötigst du ein Memory-DataSet, also Eines wo man keine Connection anhängen muß.
Der delphi-eigene Typ nennt sich TClientDataSet. (vielleicht/hoffentlich ist im FireDAC inzwischen auch was Besseres versteckt)

mkinzler 2. Feb 2021 13:43

AW: DataSet aus CSV füllen
 
Zitat:

Vielleicht/hoffentlich ist im FireDAC inzwischen auch was Besseres versteckt
FDMemTable (FireDac)
oder JVMemoryData (JVCL), TVirtualTable (DevArt als Teil von UniDAC oder DB-spezifischen Zugriffskompos oder in der freien Version), ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 Uhr.

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