![]() |
CSV Dateien erzeugen und wieder einlesen
Hallo,
ich erzeuge aus einer Paradox Tabelle eine ganz einfache CSV Datei mittels:
Delphi-Quellcode:
Diese Datei möchte ich dann mittels der JvCsvDataSet Komponente in einem anderen Programm, das auf einen MS SQL Server zugreift, einlesen.
Var Zeile:String;
StringList1 : TStringList; i : integer; begin Zeile:=''; StringList1 := TStringList.Create; Try Table1.First; // Feldnamen schreiben For i:=0 to Table1.FieldCount-1 do Zeile:=Zeile+Table1.Fields[i].FieldName+';'; StringList1.Add(Zeile); // Datensätze schreiben While NOT Table1.Eof do Begin Zeile:=''; For i:=0 to Table1.Fields.Count-1 do Zeile:=Zeile+Table1.Fields[i].AsString+';'; StringList1.Add(Zeile); Table1.Next; End; StringList1.SaveToFile('c:\export\xliste.CSV'); Finally StringList1.Free; End; end; Beim Einlesen bekomme ich die Fehlermeldung: Zitat:
Was mache ich also beim Erzeugen der Datei falsch bzw. was fehlt der Datei für eine Information???? |
Re: CSV Dateien erzeugen und wieder einlesen
Es könnte das letzte Semikolon jeder Zeile sein, welches überflüssig ist.
|
Re: CSV Dateien erzeugen und wieder einlesen
Oder Trennt Excel die Datensätze durch Kommata statt durch ein Semikolon.
Zumindest die alten Excel-Versionen haben das gemacht. |
Re: CSV Dateien erzeugen und wieder einlesen
Zitat:
Allerdings sollte ein Semikolon am Ende keinen Fehler beim Einlesen erzeugen, sondern einfach ein leeres Feld hinten am Datensatz! :roll: Excel behandelt das auch so und lässt wahrscheinlich das letzte Semikolon dann beim Abspeichern weg. Überprüfe das. Dann hast du den Grund für den Fehler ... und den Beweis, dass die Komponente fehlerhaft einliest. Unabhängig davon solltest du aber deine Routine umschreiben, denn wenn kein Feld mehr folgt, sollte auch kein abschließendes Semikolon geschrieben werden. |
Re: CSV Dateien erzeugen und wieder einlesen
Zitat:
|
Re: CSV Dateien erzeugen und wieder einlesen
Zitat:
Ich meine folgendes: Ein Semikolon als Zeilenende in einer CSV-Datei ist kein Fehler. Das bedeutet nur, dass ein weiteres, leeres Feld folgt. Eine Komponente, die daraus einen Fehler erkennt, die hat einen Fehler. |
Re: CSV Dateien erzeugen und wieder einlesen
:thumb: Stimmt !
Hab jetzt die Routine so geschrieben, daß das letzte Semikolon wegbleibt. Jetzt funzts !!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 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-2025 by Thomas Breitkreuz