Page 1 of 1

Format Vorgaben File Structure Wizard

PostPosted: 13 Mar 2019, 15:04
by markus_linder
Hallo zusammen,

ich würde gerne über den File structure wizard eine CSV-Datei mit Punkt-getrennten Dezimalzahlen einlesen. Zur Sicherung der Datenqualität möchte ich zusätzlich die Daten zunächst über das Feature "Abort reading with error" unter den Advanced Settings, Reiter "Error Handling" verwenden, damit sichergestellt ist, dass die Daten nicht als Komma-getrennte Dezimalzahlen angeliefert worden sind. Falls die Daten mit Komma geliefert worden sind, soll der Import abgebrochen werden.

Hierfür habe ich beispielhaft eine Datei vorbereitet in der die Struktur der ursprünglich angelieferten Daten ersichtlich ist:
SpecifyColumns.PNG
SpecifyColumns.PNG (17.29 KiB) Viewed 676 times


In der nächsten Ansicht ist nun dargestellt, dass nach der Wahl des Data Type "Double" und dem Format "'#.#", die entsprechenden Werte nicht korrekt eingelesen werden können.
ColumnDefinition1.PNG
ColumnDefinition1.PNG (21.78 KiB) Viewed 676 times


Wenn man das Format auf "#.##" umstellt, wird nur der erste Wert korrekt eingelesen.
ColumnDefinition2.PNG
ColumnDefinition2.PNG (26.26 KiB) Viewed 676 times


Auch eine Erhöhung der Anzahl der Rauten nach dem Punkt hilft nicht, dass der zweite Wert korrekt eingelesen wird. Eine Umstellung auf Float bzw. Decimal hat auch nichts geholfen.

Gibt es eine Format-Einstellung mit der der zweite Werte korrekt ausgelesen werden kann? Bisher würde nur die Einstellung <Auto> helfen, aber diese wirft anschließend keinen Fehler mehr, wenn der Zahlenwert mit einem Komma als Dezimaltrennzeichen angeliefert wird.
Gibt es darüber hinaus eine Format-Einstellung in der die Werte unabhängig von den vorhandenen Nachkommazahlen korrekt ausgelesen werden können, sodass man nicht immer darauf achten muss, dass sämtliche Werte in der entsprechenden Spalte der zugelieferten CSV-Datei genau X Nachkommawerte haben?

Vielen Dank!

Re: Format Vorgaben File Structure Wizard

PostPosted: 13 Mar 2019, 15:31
by KaiBaechle
Das Allround-Format ist <Auto>, wie für die ID-Spalte angegeben.

Re: Format Vorgaben File Structure Wizard

PostPosted: 13 Mar 2019, 16:14
by markus_linder
Hallo Herr Bächle,

diese Einstellung habe ich bereits verwendet, jedoch macht der File Structure Wizard dann genau das was ich vermeiden möchte. Bei einer mit Komma-getrennten Dezimalzahl schiebt er alle Nachkommastellen nach vorne und stellt mir die Zahl nur noch als Integer dar.

In gelb markiert, die mit Komma-getrennte Zahl:
Capture1.PNG
Capture1.PNG (17.46 KiB) Viewed 665 times


Unter Verwendung des Formats <Auto> wird das Trennzeichen nun ignoriert, anstatt mir einen Fehler zurückzugeben. Er wandelt mir also meine Zahl -18368,20 in -1836820,00 um:
Capture2.PNG
Capture2.PNG (23.25 KiB) Viewed 665 times

Re: Format Vorgaben File Structure Wizard

PostPosted: 13 Mar 2019, 16:45
by KaiBaechle
# steht für eine optionale Ziffer, d. h. mit ##################.## sollte es kein Problem sein.

Siehe auch die Tabelle Special Pattern Characters unter https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/DecimalFormat.html

BTW: Der <Auto>-Modus verwendet das Dezimal- und das Tausendertrennzeichen, wie unter Advanced angegeben. Da das Tausendertrennzeichen keine Auswirkung auf den numerischen Wert hat, wird es ignoriert, so dass es zu obigen Interpretation kommt.