Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi CSV-Datei die mit Semikolons getrennt ist einlesen (https://www.delphipraxis.net/94856-csv-datei-die-mit-semikolons-getrennt-ist-einlesen.html)

CCRDude 27. Jun 2007 11:52

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Weil der Delimiter und StrictDelimiter für alle FormCSV.StringGridCSV.Rows[i] wahrscheinlich nicht gesetzt sind?

PS: Nach da drüber: soll doch ';' und nicht ',' sein ;-)

HolgerCW 27. Jun 2007 13:16

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Habe nun die Lösung:

Delphi-Quellcode:
sRows := TStringList.Create;
sRows.LoadFromFile('Datei.csv');

sCols := TStringList.Create;
sCols.DelimitedText := sRows[0];

FormCSV.StringGridCSV.ColCount:=sCols.Count;
sCols.Free;

FormCSV.StringGridCSV.RowCount := sRows.Count;

for i := 0 to Pred(sRows.Count) do
begin
 FormCSV.StringGridCSV.Rows[i].Delimiter := ';';
 FormCSV.StringGridCSV.Rows[i].StrictDelimiter := true;
 FormCSV.StringGridCSV.Rows[i].DelimitedText := sRows[i];
end;
sRows.Free;
Habe da noch ein abschliessende Frage:

- Wie kann ich die Daten aus der CSV-Datei von Spalte 1 bis ... in das StringGrid schreiben. Heisst: Spalte 0 soll leer bleiben.

Gruss

Holger

CCRDude 27. Jun 2007 13:35

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Probieren geht über studieren ;)
Spiel doch einfach mal ein bißchen mit TStrings/TStringList rum, um zu wissen was das macht und wie es geht. Folgendes Beispielsweise würde eine leere erste Spalte schreiben (nicht die eleganteste Methode, aber evtl. die mit den wenigsten Abweichungen):

Delphi-Quellcode:
// sCols.Free; streichen!
for i := 0 to Pred(sRows.Count) do begin
   FormCSV.StringGridCSV.Rows[i].Delimiter := ';';
   FormCSV.StringGridCSV.Rows[i].StrictDelimiter := true;
   sCols.DelimitedText := sRows[i];
   sCols.Insert(0, '');
   FormCSV.StringGridCSV.Rows[i].DelimitedText := sCols.DelimitedText;
end;
sCols.Free; // stattdessen hier!
sRows.Free;

HolgerCW 27. Jun 2007 13:48

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Hi,

die Spalte wird wohl eingefügt, nur fehlt nun wieder die Trennung beim Semikolon. Es wird wieder beim Komma getrennt.

So habe ich es umgebaut:

Delphi-Quellcode:
sRows := TStringList.Create;
sRows.LoadFromFile('Datei.csv');

sCols := TStringList.Create;
sCols.DelimitedText := sRows[0];

FormCSV.StringGridCSV.ColCount:= sCols.Count;
FormCSV.StringGridCSV.RowCount := sRows.Count;

for i := 0 to Pred(sRows.Count) do
begin
 FormCSV.StringGridCSV.Rows[i].Delimiter := ';';
 FormCSV.StringGridCSV.Rows[i].StrictDelimiter := true;
 sCols.DelimitedText := sRows[i];
 sCols.Insert(0, '');
 FormCSV.StringGridCSV.Rows[i].DelimitedText := sCols.DelimitedText;
end;
sRows.Free;
sCols.Free;
Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:13 Uhr.
Seite 2 von 2     12   

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