Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

HolgerCW 27. Jun 2007 09:44


CSV-Datei die mit Semikolons getrennt ist einlesen
 
Hallo zusammen,

habe folgenden Code hier im Forum gefunden:

Delphi-Quellcode:
sRows := TStringList.Create;
sRows.LoadFromFile('Datei.csv');
sCols := TStringList.Create;
sCols.CommaText := sRows[0];
FormCSV.StringGridCSV.ColCount := sCols.Count;
sCols.Free;
FormCSV.StringGridCSV.RowCount := sRows.Count;
for i := 0 to Pred(sRows.Count) do
 FormCSV.StringGridCSV.Rows[i].CommaText := sRows[i];
 sRows.Free;
Diese trennt aber die Spalten bei einem Komma, wie stelle ich das um auf Semikolon ?

Gruss

Holger

CCRDude 27. Jun 2007 09:52

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Delphi-Quellcode:
sCols.Delimiter := ';';
sCols.StrictDelimiter := true; // falls leerzeichen ohne anführungszeichen...
sCols.DelimitedText := 'Hallo;Welt';

HolgerCW 27. Jun 2007 09:55

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Vielen Dank für die Hilfe,

wie binde ich denn das jetzt in den Code ein ?

Gruss

Holger

mkinzler 27. Jun 2007 10:30

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Ab Zeile 2 (Die 3. natürlich nicht)

HolgerCW 27. Jun 2007 10:42

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Also wenn ich den Code mit dem Delimiter benutze...

Delphi-Quellcode:
sRows := TStringList.Create;
sRows.LoadFromFile('Datei.csv');
sCols.Delimiter := ';';
sCols.StrictDelimiter := true;
sCols := TStringList.Create;
sCols.CommaText := sRows[0];
FormCSV.StringGridCSV.ColCount := sCols.Count;
sCols.Free;
FormCSV.StringGridCSV.RowCount := sRows.Count;
for i := 0 to Pred(sRows.Count) do
 FormCSV.StringGridCSV.Rows[i].CommaText := sRows[i];
 sRows.Free;
... trennt der trotzdem immer noch bei dem Komma

Liegt das vielleicht an dem Befehl '.CommaText' ?

Gruss

Holger

mkinzler 27. Jun 2007 10:49

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Du mußt die Eigenschaften setzen, bevor du den Text einlädst:
Delphi-Quellcode:
sRows := TStringList.Create;
sCols.Delimiter := ';';
sCols.StrictDelimiter := true;
sCols.LoadFromFile('Datei.csv');
Zitat:

Liegt das vielleicht an dem Befehl '.CommaText' ?
ja. du mußt .DelimitedText nehmen.

HolgerCW 27. Jun 2007 11:34

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Habe es jetzt so umgebaut, aber er trennt immer noch beim Komma:

Delphi-Quellcode:
sRows := TStringList.Create;
sRows.Delimiter := ';';
sRows.StrictDelimiter := true;
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
 FormCSV.StringGridCSV.Rows[i].DelimitedText := sRows[i];
 sRows.Free;
Gruss

Holger

mkinzler 27. Jun 2007 11:36

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Du hast auch die Eigenschaften bei der falschen StringListe gesetzt.

HolgerCW 27. Jun 2007 11:48

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Wenn ich das so mache...

Delphi-Quellcode:
sRows := TStringList.Create;
sRows.LoadFromFile('Datei.csv');
sCols := TStringList.Create;
sCols.Delimiter := ';';
sCols.StrictDelimiter := true; // falls leerzeichen ohne anführungszeichen...
sCols.DelimitedText := sRows[0];
FormCSV.StringGridCSV.ColCount := sCols.Count;
sCols.Free;
FormCSV.StringGridCSV.RowCount := sRows.Count;
for i := 0 to Pred(sRows.Count) do
 FormCSV.StringGridCSV.Rows[i].DelimitedText := sRows[i];
 sRows.Free;
... trennt der immer nocoh am Komma ...

Gruss

Holger

mkinzler 27. Jun 2007 11:51

Re: CSV-Datei die mit Semikolons getrennt ist einlesen
 
Wie wärs mit
Delphi-Quellcode:
FormCSV.StringGridCSV.Rows.Delimiter := ';';
?
[Edit: richtigen Delimiter]


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.
Seite 1 von 2  1 2      

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