AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stringgrid als CSV datei speichern.

Ein Thema von twospirit · begonnen am 22. Jan 2007 · letzter Beitrag vom 1. Nov 2008
Antwort Antwort
Seite 3 von 3     123
nahpets
(Gast)

n/a Beiträge
 
#21

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 10:17
Zitat von sx2008:
Zitat von nahpets:
Ok: Wie mache ich es wasserfest, wenn das Trennzeichen ein beliebiges aus dem Zeichenvorrat sein kann?
Felder, die das Trennzeichen enthalten werden "gequoted", also in Anführungszeichen eingeschlossen:
Code:
12,"Feld, das ein Komma enthält",Feld ohne Komma,2008-10-31
Anführungszeichen in Feldern müssen verdoppelt werden:
Code:
13,"""die grüne Hölle"" wird die Rennstrecke genannt"
Das heißt: Das ich an den Lieferanten der Daten sehr hohe Ansprüche stellen muss, die er z. B. mit den gewöhnlichen Mitteln (wie Excel) nicht erfüllen kann.

Code:
12,"Feld, das ein Komma enthält",Feld ohne Komma,#Feld, das " enthält#^feld, das , + ; + " + # enthält^2008-10-31
Code:
12,"Feld, das ein Komma enthält",""""Feld das "" enthält"""",2008-10-31
Code:
12,"Feld, das ein Komma enthält",""""""Feld das """ enthält"""""",2008-10-31
Ich muss häufig Daten importieren, die mit Excel gesammelt wurden und dann irgendwann in irgendeine Datenbank sollen, in dem Zusammenhang ist die spalteninhaltsabhängige Quotierung absurd.

PS.: Wir schweifen vom Thema ab.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 10:22
Hi,

also statt
If Copy(FileName,Pos('.',FileName),Length(FileName)-Pos('.',FileName)+1) <> '.csvThen FileName := FileName + '.csv'; würde ich ja
FileName := ChangeFileExt( FileName, '.csv' ); nehmen.
Denn sonst passiert das:
'Meine.csv.Datei.csv' --falsch--> 'Meine.csv.Datei.csv.csv' --richtig--> 'Meine.csv.Datei.csv'
'Meine.Tolle.Datei.txt' --falsch--> 'Meine.Tolle.Datei.txt.csv' --richtig--> 'Meine.Tolle.Datei.csv'

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#23

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 10:25
einfache "Trennzeichen" und diese verdoppelt darzustellen als Text, kanns ja wohl auch nicht sein. Man nehme feste Feldlängen, irgendwelche Zeichen sind völlig egal und fertig. Eben genau so wie Import/Export auch in Excel geht.

Mann mann, schlägt roter Kasten aber zu.

Zitat von DeddyH:
Du musst Dir die Zeilen in der csv, die falsch ausgegeben werden, einmal ansehen. Vermutlich ist das Trennzeichen in den Daten vorhanden oder etwas in der Art.
Genau diesen Mist sollte man eben vermeiden. Nächster Vorteil : die erstellte sogenannte CSV-Textdatei läßt sich in Editor laden. Stehen die Felder nicht immer genau bündig untereinander, dann stimmt was nicht. Dasselbe gilt, sofern length (zeile) nicht überall denselben Wert hat. geht bei "richtigen" CSV-Dateien eben auch nicht. "CSV" sollte man NICHT wörtlich nehmen.

Jetzt hat der rote Kasten sage und schreibe 6mal zugeschlagen. Filesize ist auch noch wichtig, um sofort zu sehen, ob das Ergebnis stimmen kann oder nicht. Auch das geht bei wörtlich genommenen CSV-Dateien nicht !
Gruß
Hansa
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#24

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 10:40
@Hansa

Du hast im Prinzip ja vollkommen recht, aber das kann ich meinen Anwendern alles tausendmal erklären, ich muss immer überarbeiten und wenn ich als Trenner dann wenigstens den | habe, hab' ich einen Anhaltspunkt, wo denn die Probleme beim Import herkommen könnten.
Wir sind uns vom Prinzip einig, daher genug [OT]
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#25

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 11:01
Zitat von nahpets:
Wir sind uns vom Prinzip einig
Ne, nicht ganz. Trennzeichen stammen aus der Zeit, als es folgendes gab : 'a'..'z' 'A'..'Z', '-','.','0'..'9'. Da war der ; erste Wahl. Nur, was kommt wenn einer heute aus Versehen die Tastatur auf englisch umstellt und er will 'Ö' schreiben ? Da kommt ein ';' ! Und schon ists passiert. Ein falsches Zeichen genügt, um die ganze Datei unbrauchbar zu machen. Nehmen wir halt das hier : | . Kriegt so schnell keiner hin, wie ? Es genügt ein Blick auf die Tastatur. Kenne folgenden Fall :

Delphi-Quellcode:
*------------------------*
| |
*------------------------*
Das war eine Artikel-Bezeichnung, wo in das Kästchen was von Hand eingetragen werden sollte. Ein anderer Spezialist hat das so gemacht :

Delphi-Quellcode:
.
.
.
Dem waren wohl Leerzeilen lieber. Da ist man auch vom ; nicht mehr weit weg und dein | war sogar schon da. Und sollten die Daten aus Excel stammen, dann stellt man sich besser die Feldweiten einmalig ein und Ruhe ist. Nie mehr Ärger mit komischen Trennzeichen.
Gruß
Hansa
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#26

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 14:14
@Hansa
Du hast ja recht, aber das bekomme ich meinen Anwendern nicht beigebracht, da überfordere ich sie.
Es ist schon eine Herausforderung, wenn ich darum Bitte, als Trennzeichen den | zu nehmen.
Muss halt in der Regel Addressdaten importieren, da kommen schonmal Aufzählungen mit Komma oder Semikolon vor, aber nicht mit |.
Und das ich durch solche Kästchen, wie Du sie zeichnest, durch muss, ist mir (zum Glück) noch nicht passiert. Bei sowas würd' ich dann schlicht und einfach streiken.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#27

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 15:28
Hallo,

um noch mal auf die Frage zurückzukommen "versionsahängig".
Jepp, das ist es.
Je nach Version ist mal Komma oder Semikolon als einziger Trenner voreingestellt.


Heiko
Heiko
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#28

Re: Stringgrid als CSV datei speichern.

  Alt 31. Okt 2008, 15:34
Zitat von hoika:
um noch mal auf die Frage zurückzukommen "versionsahängig".
..Je nach Version ist mal Komma oder Semikolon als einziger Trenner voreingestellt.
Wo wurde was von Version und weshalb gefragt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#29

Re: Stringgrid als CSV datei speichern.

  Alt 1. Nov 2008, 06:45
Hallo,

huch, stümmt
Da habe ich wohl einen anderen Thread im Kopf gehabt.


Heiko
Heiko
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#30

Re: Stringgrid als CSV datei speichern.

  Alt 1. Nov 2008, 08:06
Etwas Theorie sowie ein CSV-Reader ist in diesem Thread nachzulesen.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 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