Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Software » CSV ungwollte Zeilenumbrüche

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
14.01.2009, 22:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Eine andere Frage: warum exportierst du nicht nach XML? oder kann dein Zielprogramm kein XML einlesen?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
14.01.2009, 22:28 Uhr
KFC Embryo
Ein Huhn


Danke Hans das mit dem Hex-Editor werde ich mal ausprobieren.
Ja das Zielprogramm kann kein XML einlesen es arbeitet sequentiell.

Ich werde es morgen mal ausprobieren und dann gebe ich wieder bescheid.

Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
15.01.2009, 11:30 Uhr
KFC Embryo
Ein Huhn


Hallo,

so mein Problem scheint vorerst gelöst hier der Lösungsweg:

Als aller erstes muss man in Excel die Zeilenumbrüche entfernen.
Danach muss mittels der ersetzen Funktion Bei suchen: strg-j eintragen und bei ersetzten leer lassen.
Danach speichert man die Datei als CSV ab.
Jetzt öffnet man die Datei mit einem Hex Editor.
Dort gibt es eine Funktion ähnlich wie in Excel ersetzten in suchen trägt man 0D ein und in ersetzten 20. Zu beachten ist das der Reiter auf Hexadezimal steht.
Jetzt wird ersetzt. Es dauert ein wenig aber dafür hat man eine „Mega“ kurze Wartezeit später bei der Migration.
Danach kann man migrieren in weniger als 5 Minuten sind alle Datensätze migriert und es kommt kein einziger Fehler.

Nun zu den technischen Details:

Das Problem war das Crimson Editor und der Microsoft Editor keinen Punkt „in dem Sinne darstellen konnten“ immer wenn das der Fall war machten beide Editoren ein „Viereck“.
Beim öffnen der csv/txt Datei mit dem Hex Editor viel mir allerdings auf das dieser Punkt mit einem 0D gekennzeichnet ist und nicht wie ein normaler Punkt mit 2E.
Danach habe ich es dann wie oben bereits geschrieben mit einem Leerzeichen ersetzt was in Hexadezimal einer „20“ entspricht.

Nun sieht auch die csv/txt Datei aus wie eine. Die jetzt noch übrigen „Vierecke“ kennzeichnen einen Absatz und sind immer nur vor der Anrede (Herr oder Frau) zu finden was ja auch so sein soll.
Bei der Migration muss als Trennzeichen „;“ angeben werden und bei der „string Trennung“ ein Anführungszeichen.


Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
15.01.2009, 11:50 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


0D (13) ist \n, also zeilenvorschub, logisch irgendwo. wenn dein editor da nur vierecke hinmalt, ist er keine unixfiles mächtig, windows verlangt als zeilenvorschub nämlich \r\n und linux ist das nur \n.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
15.01.2009, 12:03 Uhr
KFC Embryo
Ein Huhn


Seltsam das ist ein Datenexport aus Microsoft Outlook.
Und dann später ja ein Export aus Microsoft Excel.

Warum benutz er dann den Unix Zeichensatz?
Oder habe ich das jetzt Falsch verstanden?

Was ich auch komisch finde ist das wenn man eine CSV Datei aus der Excel Datei erstellt das nicht in einem format ist welches ein anderes Programm von Microsoft verarbeiten kann oder?


Gruß
--
An nescis, mi fili, quantilla prudentia mundus regatur?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
15.01.2009, 16:10 Uhr
Hans
Library Walker
(Operator)


Hi,

also das mit den Zeilenenden hast du wahrscheinlich falsch verstanden. Eine Textzeile endet in Windows immer mit der Zeichenfolge 0d 0a (hex), was in C-Notation der Zeichenfolge \n\r entspricht. Unix/Linux benötigt als Zeileende-markierung nur ein 0d (hex) bzw. \n in C-Notation.

Und wenn ein Microsoftprogramm eine Datei erstellt, heisst das noch lange nicht, das ein anderes Programm von der selben Firma die Datei auch lesen kann. Gerade MS-Office ist nämlich oft inkompatibel zu sich selbst, d.h. zu seiner Vorgängerversion. Es ist also nicht sicher, das eine Datei die beispielsweise mit Excel '98 erstellt wurde, von Excel 2005 noch richtig gelesen wird, bzw. in beiden Programmen identisch dargestellt wird.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
15.01.2009, 16:19 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


vor allem, wenn du sagst das die quelldaten aus outlook stammt? bei mails wird meist generell \n benutzt, wodurch evtl sich da "falsche" umbrüche in die excel-tabelle eingeschlichen haben
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Software ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: