Autor Beitrag
cfc4ever
Hält's aus hier
Beiträge: 3


Delphi 5, Firebird SQL, IBExpert
BeitragVerfasst: Mo 25.09.06 14:35 
Hi @all,

ich verwende in einem Programm zum Einlesen einer CSV-Datei die Funktion readln. Leider kommt es manchmal vor, dass die csv-Datei als Zeilenumbruch nicht crlf verwendet, sondern ein anderes, mir noch unbekanntes Zeichen, verwendet.

Gibt es eine Möglichkeit zu konfigurieren, welches Zeilenabschlusszeichen readln verwenden soll?

thx cfc4ever
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Mo 25.09.06 16:59 
user profile iconcfc4ever hat folgendes geschrieben:
Hi @all,

ich verwende in einem Programm zum Einlesen einer CSV-Datei die Funktion readln. Leider kommt es manchmal vor, dass die csv-Datei als Zeilenumbruch nicht crlf verwendet, sondern ein anderes, mir noch unbekanntes Zeichen, verwendet.

Gibt es eine Möglichkeit zu konfigurieren, welches Zeilenabschlusszeichen readln verwenden soll?

thx cfc4ever


Hallo,

nur die: eine readln -Funktion selber programmieren und dabei CR, CR-LF, LF und LF-CR berücksichtigen, oder noch was ganz anderes.

Gruss Reinhard
Raffo
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: Mo 25.09.06 17:01 
ReadLn verwendet standardmässig #10 #13 (linefeed, carrigereturn = zeilenvorschub, neue zeile). Das kannst Du nicht konfigurieren.

Du musst das Zeichen deiner "komischen .csv Datei ausfindig machen damit Du selbst im Programm auf diese Ungewöhnlichkeit reagieren kannst.

1) Versuch die CSV mal in Excel zu laden, klappt alles... muss also nur das "komische" Zeichen gefunden werden

else
klappt es nicht, ist die Datei nicht ECHT .csv

2) Um das "komische Zeichen" zu finden, könntest Du am besten nen HEX Editor zu Hilfe nehmen, der zeigt einfach alles an.
cfc4ever Threadstarter
Hält's aus hier
Beiträge: 3


Delphi 5, Firebird SQL, IBExpert
BeitragVerfasst: Mo 25.09.06 17:19 
Hi,

danke für die Info. Das komische Zeichen war "nur" ein linefeed. Ich hätte dann den kompletten Text der CSV-Datei gehabt und anhand dieses Zeichens und einer weiteren while-Schleife mir mein "eigenes readln" zusammen bauen können.

@Raffo:
Excel ist clever genug, die csv-Datei zu öffnen (nicht so wie ich :( ) und hätte auch ein crlf angehängt, wenn ich die Exceldatei als csv gespeichert hätte. Leider entfernt Excel zu viele Zeichen (Texterkennung usw.) und versucht seine eigene Formatierung zu verwenden (aus Texten, die größer sind als 11 Zeichen und aussehen wie Zahlen wird eine Exponentialzahl gemacht :evil: [offtopic]).

Die beste Lösung ist die Ursache zu bekämpfen und den "Lieferanten" der Datei zu überreden ein crlf als Zeilentrenner zu verwenden. Jetzt funktioniert es.

Vielen Dank noch mal.

thx cfc4ever
Raffo
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 300



BeitragVerfasst: Mo 25.09.06 17:52 
Titel: Excel, darf ich mitdenken?
Stimmt, Excel ist auch nicht der Weißheit letzter Schluss, er versucht Dir zu helfen - but he failed with his stupid routines - Sollte man das heutzugage "künstliche Intelligenz" nennen? Die Dummeheit liegt nur an IHM, weil er die Zahlen nicht als Zahlen erkennt, aber er versucht zuviel hineinzuinterpretieren, und es wäre besser, er würde zuvor fragen: "Darf ich mitdenken?" :lol:
Reinhard Kern
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 591
Erhaltene Danke: 14



BeitragVerfasst: Mo 25.09.06 20:41 
Titel: Re: Excel, darf ich mitdenken?
user profile iconRaffo hat folgendes geschrieben:
... Die Dummeheit liegt nur an IHM, weil er die Zahlen nicht als Zahlen erkennt...:lol:


Hallo,

manchmal erkennt Excel schon Zahlen: wenn ich in einer Auswertung eines 20 seitigen Dokuments die Seitenzahl mit 5 / 20 angebe (ist nicht so ganz unüblich), dann steht da Seite 0.25 :-(

Gruss Reinhard