robertroth: CSV Format

Beitrag lesen

Liebe Mitdenker, liebe Wissende, liebe Neugierige,

[...] ich finde aber, dass das ein "cooles" Format ist: Wähle drei x-beliebige Zeichen (Umgebungsvar, Spaltentrenner, Zeilentrenner) und escape allein die Umgebungsvar, indem Du sie zum Escapen verdoppelst.

ja, ich mag CSV grundsätzlich auch gern, zumal es gegenüber vielen "besseren", aber proprietären Formaten noch einen Vorteil hat: Es lässt sich mit einem gewöhnlichen Texteditor öffnen und als Klartext lesen. Das ist bei XML-basierten Formaten schon etwas umständlicher.

Rein praktisch nutze ich es allein, um aus Excel "rauszukommen" (mit VBA eine CSV erstellen).

Ich gehe gern genau den umgekehrten Weg: Ich erzeuge z.B. Messprotokolle als CSV, um sie dann mit Excel oder LO Calc zu importieren und z.B. Diagramme daraus zu machen.

Klar auch, dass wenn jeder macht wie er will (Excel bzw. MS zB. indem per VBA erzeugtes CSV anderer Delimiter hat als per Menü), dann "funzt" es natürlich nicht. Die zu Grunde liegende Logik (ich wiederhole mich), dünkt mir aber "extrem" praktikabel. Is ja nicht so kompliziert, und "man" könnte sich ja mal schlicht auf die drei (oder vier \n\r) Ascii Zeichen einigen, die da in Frage kommen.

Zumal die angesprochenen Programme (Excel und LO Calc) beim CSV-Import ja alle Parameter im Dialog abfragen, sogar mit Vorschau anhand der echten Daten (also nicht nur Beispieldaten).

Und Excel versteht in der ersten Zeile das Name=Value Pärchen sep=x (x für den Seperator). \r\n für das Zeilenende wird vorausgesetzt. Mehr aber scheinbar nicht.

Viele Programme (z. B. die Export-Toold der Fritzbox) mutzen das.

PHPs Funktion fgetcsv() berücksichtigt das nicht, man könnte es ihr aber beibringen, dass (mehrere) Settings als Name=Value Pärchen in einzelnen Zeilen vorangehen und die Daten erst dann beginnen, wenn keine Settings mehr kommen. Dabei sollte dann eine Reihenfolge eingehalten werden (linefeed, sep, enclosure, ...). Mal sehen, wann das "auto-flag) in der Funktion auftaucht *gg*

Spirituelle Grüße
Euer Robert
robert.r@online.de

--
Möge der wahre Forumsgeist ewig leben!