16. Oktober 2018 15:45
Hallo zusammen,
ich komm mal wieder nicht mehr weiter.
Ich möchte mit einem XML Port eine CSV Datei importieren. Allerdings werden die Zeichen durch ein (für mich) unsichtbares Zeichen getrennt. Der Text sieht quasi so aus LetzterWertErsterWert. Dazwischen ist mein Sonderzeichen.
Dabei handelt es sich um einen Zeilenumbruch (CR LF).
Jetzt versuche ich irgendwie, dass NAV mit die Datensätze richtig trennt. Excel checkt das ohne Probleme.
Hat hier jemand eine Ahnung wie ich das hinbekommen kann? Standard ist ja als Recordseparator "NewLine".
Ich hab versucht das in den Properties umzustellen, indem ich da die beiden Chars 10 und 13 eigentragen habe.
Im Code selber kann man den Recordseparator auch ändern
da habe ich jetzt folgendes
- Code:
currXMLport.RECORDSEPARATOR(FORMAT(CR)+ FORMAT(LF));
Wobei CR = Char(13) LF = Char(10).
Alles ohne Erfolg.
Hat hier jemand noch eine Idee?
Zuletzt geändert von ITNoob am 18. Oktober 2018 08:15, insgesamt 1-mal geändert.
16. Oktober 2018 15:58
Versuch mal
- Code:
<CR/LF>
als Fieldseperator.
16. Oktober 2018 16:12
Hallo McClane,
danke für die schnelle Antwort.
Funktioniert lieder nicht.
das CRLF trennt nur die Datensätze. Die Felder werden mit ";" getrennt. Dann müsste ich das doch in den Recordseparator schreiben oder?
16. Oktober 2018 16:14
Hallo,
meinst du wirklich getrennt durch ein unsichtbares Zeichen?
Falls ja, lade dir doch mal den Notepad++ herunter. Dieser Editor hat weniger Probleme mit unterschiedlichen Zeichensätzen, und man sieht welcher Zeichensatz aktiv ist.
Das unsichtbare Zeichen könnte auf einen UTF- Zeichensatz hindeuten.
Gruß Fiddi
16. Oktober 2018 16:15
ITNoob hat geschrieben:Allerdings werden die Zeichen durch ein (für mich) unsichtbares Zeichen getrennt.
Unsichtbare Zeichen kann man in Notepad++ so sichtbar machen:
UnsichtbareZeichen.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
16. Oktober 2018 16:35
Hallo zusammen,
vielleicht habe ich mich da falsch ausgedrückt. Es ist unsichtbar im sinne von das man es nicht direkt sieht, nicht das es nicht da ist. Wenn ich z.B. mit dem Cursor durchgehe muss ich an der Stelle auch 2 mal drücken um zum nächsten Zeichen zu kommen.
Welche Zeichen es sind habe ich schon rausgefunden und wurde auch durch Notepad bestätigt:
Es ist CR LF.
Danke für die Hilfe.
Grüße
16. Oktober 2018 16:46
ITNoob hat geschrieben: Wenn ich z.B. mit dem Cursor durchgehe muss ich an der Stelle auch 2 mal drücken um zum nächsten Zeichen zu kommen.
Kleiner Exkurs: Dieses Cursorverhalten wird man übrigens in Notepad++ auch bei sichtbaren Zeichen haben, wenn mehr als ein Codepoint in einer Unicodedatei verwendet wird, das hatte ich
hier mal beschrieben.
16. Oktober 2018 20:45
ITNoob hat geschrieben:Die Felder werden mit ";" getrennt. Dann müsste ich das doch in den Recordseparator schreiben oder?
Sorry, aber das hatte ich hier anders verstanden:
ITNoob hat geschrieben:Allerdings werden die Zeichen durch ein (für mich) unsichtbares Zeichen getrennt.
17. Oktober 2018 16:18
Ich habe jetzt auch mal die .csv Datei direkt mit Notepad++ aufgemacht.
Da schreibt er nur LF als Zeichen.
Wenn ich das in meinen XML Port ändere wird auch was importiert. Aber kompletter Quatsch. Die Spalten sind falsch und manchmal steht in der gleichen Spalte das Datum und manchmal die Beschreibung.
Die Überschrift der Spalten wird auch einfach 3x importiert.
Und was auch komisch ist, an der Stelle wo eigentlich die Datensätze getrennt werden interpretiert NAV das irgendwie als Leerzeichen. Also macht quasi einfach den letzten Wert einer Zeile + Leerzeichen + Teile vom ersten Wert der nächsten Zeile.
Excel und Notepad interpretieren alles einfach richtig.
Grüße
17. Oktober 2018 16:22
Hallo,
kannst du mal eine bis 10 Zeile deiner CSV- Datei als Datei hier hochladen (falls da was relevantes drin steht, Texte ändern).
Gruß Fiddi
17. Oktober 2018 16:53
Das ist jetzt eine aktuelle csv Datei als txt gespeichert. Ich darf wohl keine csv Datei hochladen
Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
17. Oktober 2018 17:19
Hallo,
es ist noch nicht ganz sicher , in welchem Zeichensatz (Windows oder MSDOS) weil keine Umlaute drin sind.
Das Format des XML-Ports ist "Variable Text", der Field Delimiter ist "<None>", der Fieldseparator ist ";", der RecordSeparator ist "<LF>". danach solltest du nur noch die Felder zuordnen, und los geht's.
Gruß Fiddi
18. Oktober 2018 07:58
Guten Morgen zusammen,
auch wenn mir nicht ganz klar ist was ich zu meiner Version geändert habe funktioniert das mit den Einstellungen.
Ich denke ich habe statt <LF> nur LF geschrieben.
Vielen Dank für die Unterstützung!
Grüße
18. Oktober 2018 09:18
LF ist bei Unix/Linux üblich, CR LF bei Windowssystemen. Das ist aber in Notepad++ zu erkennen (Infobox unten rechts, bzw. mit "Alle Zeichen anzeigen").
13. Dezember 2018 10:02
Guten Morgen,
ich muss das Thema nochmal aufgreifen.
Es geht immernoch um die gleiche Datei.
Wenn ich die ursprüngliche Datei importieren möchte bekomme ich folgenden Fehler
Microsoft Dynamics NAV
---------------------------
'.', hexidezimaler Wert 0x00, ist ein ungültiges Zeichen. Zeile 1, Position 13041.
---------------------------
OK
---------------------------
Allerdings gibt es keine Position 13041. Auch nicht wenn ich alles in eine Zeile schreiben würde.
Wenn ich die csv Datei im Editor öffnen und einfach nur wieder speicher ohne was zu ändern, funktioniert der Import.
Hat hier jemand eine Idee?
Danke schonmal
13. Dezember 2018 10:47
Hallo,
wieviele Zeichen hat deine Datei?
Gruß Fiddi
13. Dezember 2018 10:53
Hallo Fiddi,
ich hab mal alles in Excel in eine Zelle kopiert. Da waren es ca. 3500.
13. Dezember 2018 10:58
Schau dir man die Eigenschaften der Datei an, dort sollte die Größe in Bytes angegeben werden.
Gruß Fiddi
13. Dezember 2018 11:07
Die Größe in Bytes ist 3570
13. Dezember 2018 11:33
Mit einem Hexeditor kann man die Quelldatei am besten durchleuchten, z.B. diesem (läuft auch unter Windows 10).
XVI32
13. Dezember 2018 11:48
Also wenn ich damit die beiden Dateien vergleiche steht bei der originalen am Schluss lauter "00". Im Editor wird das wohl mit "Leerzeichen" dargestellt
Die gespeicherte Datei wandelt das wohl in "20" um.
Mir sagt das allerdings gar nichts.
Ich bräuchte das ab dieser Stelle auch gar nicht für meinen Import. Kann ich das irgendwie abfangen?
Grüße
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.