CSVfox
Get the job done.
 Deutsch

Numerische Felder lesen und formatieren

Identifizieren und Lesen numerischer CSV Felder

Numerische CSV Felder

Im Allgemeinen wird jedes Datenfeld in einer CSV Tabelle als Text behandelt. Aber es ist auch möglich, numerische Inhalte aus einem Feld zu extrahieren. Dann können Sie optional einige arithmetische Berechnungen damit durchführen und das Ergebnis für die Ausgabe formatieren.

Damit dies möglich ist, muss das Feld eine Zahl im Dezimalformat enthalten. (Die wissenschaftliche Notation wird nicht unterstützt.)
Die Zahl besteht also optional aus einem Minuszeichen, einigen Ziffern von 0 bis 9 und vielleicht einem Tausendertrennzeichen und/oder einem Dezimaltrennzeichen und Dezimalstellen.

Es ist nicht erforderlich, dass das Feld nur die reine Zahl enthält. Umgebender Leerraum ist erlaubt, und auch anderer Text vor und/oder nach dem numerischen Ausdruck. In diesem Fall erkennt und extrahiert die Software das erste Vorkommen dessen, was die gewünschte numerische Information zu sein scheint.

Felder als numerische Werte lesen

Interpretation als numerisch

Um der Software mitzuteilen, dass numerische Informationen extrahiert werden sollen, müssen Sie zusätzlich zu den üblichen eckigen Klammern für den Feldzugriff den Feldidentifikator zwischen runde Klammern setzen:
([MeinNumerischesFeld]).
Auf diese Weise wird die Software die "17" in dem Satz "Dieser Korb enthält 17 Äpfel" erkennen.

Standardmäßig werden numerische Informationen in Ihrem lokalen Nummerierungsstil interpretiert ( siehe auch %locale). So wird in den USA ein Komma als Tausendertrennzeichen und ein Punkt als Dezimaltrennzeichen interpretiert, während es in Deutschland genau andersherum ist.

Interpretation von Werten im nicht-lokalen Format

Ändern des Nummerierungsstils

Sie können das zu lesende Zahlenformat auch manuell festlegen, indem Sie das Tausendertrennzeichen, das Dezimaltrennzeichen und optional die Anzahl der Dezimalstellen angeben.
Diese Angaben müssen nach der schließenden eckigen Klammer und vor der schließenden runden Klammer eingefügt werden.
Wenn auch die Anzahl der Dezimalstellen angegeben wird, wird die ermittelte Zahl vor der weiteren Verarbeitung auf diese Dezimalstellen gerundet.

Die Reihenfolge der Angabe ist immer:
Tausendertrennzeichen, Dezimaltrennzeichen, Anzahl der Dezimalstellen.
Zum Beispiel: ([Gesamtbetrag],.2) bedeutet: Das Feld "Gesamtbetrag" wird gelesen und sein numerischer Wert wird extrahiert, wobei Tausender-Komma und Dezimalpunkt verwendet werden. Dabei wird der Wert auf zwei Dezimalstellen gerundet.

Sie müssen nicht alle Parameter angeben. Sie können jedoch kein Tausendertrennzeichen angeben, ohne auch ein Dezimaltrennzeichen anzugeben. Wenn nur ein einziges Trennzeichen angegeben ist, wird dieses als Dezimaltrennzeichen verwendet. In diesem Fall wird kein Tausendertrennzeichen unterstützt.
Wenn auch eine Zahl angegeben wird, definiert diese die Anzahl der Dezimalstellen, auf die der Wert gerundet wird. Eine "0" bedeutet hier die Rundung auf eine ganze Zahl.

Wenn Sie keine Trennzeichen, sondern nur die Anzahl der Dezimalstellen angeben, wie in ([Gesamtbetrag]2), wird für die Trennzeichen die aktuelle Gebietsschemaeinstellung Ihrer Installation (Land) angenommen. So wird in den USA in der Regel ein Dezimalpunkt verwendet, während in Deutschland ein Dezimalkomma Standard ist.
[MyField]
Dies stellt den Inhalt von MyField als Text dar, "wie er ist". Es ist keine numerische Interpretation oder Arithmetik vorgesehen.
([MeinFeld])
Findet und extrahiert den numerischen Inhalt von MyField. Die Interpretation folgt dem aktuellen Gebietsschema.
Wenn der Inhalt von [MyField] lautet "Mein neuer Porsche kostet $85,000.00 USD!", dann findet ([MyField]) "85,000.00", wenn Sie sich im Gebietsschema USA befinden, wo Dezimalpunkt und Tausenderkomma verwendet werden.
([MeinFeld].,)
Dies findet und extrahiert den numerischen Inhalt von MyField, wobei der Punkt als Tausendertrennzeichen und das Komma als Dezimaltrennzeichen interpretiert wird.
Wenn der Inhalt von MeinFeld lautet "Mein neuer Porsche kostet $85.000,00 USD!" lautet, passt dies perfekt.
([MeinFeld],3)
Dies extrahiert den numerischen Inhalt von MeinFeld, interpretiert das Komma als Dezimaltrennzeichen und rundet den Wert auf 3 Dezimalstellen. Ein Tausendertrennzeichen ist hier nicht angegeben, daher sollten Sie sicher sein, dass [MeinFeld] keines enthält.
Theoretisch können Sie fast alle Zeichen als Tausender- oder Dezimaltrennzeichen angeben, obwohl in der Regel nur Komma oder Punkt verwendet werden.
Sie haben aber vielleicht schon geahnt, dass es Grenzen gibt. Die folgenden Zeichen können nicht als Tausender- oder Dezimaltrennzeichen angegeben werden:
Alle Arten von Klammern ( ) [ ] { },
Alle arithmetischen Operatoren (siehe unten): r ! + - * : / % ^ # @ < >,
Alle Ziffern 0 1 2 3 4 5 6 7 8 9.

einige weitere Beispiele...

Formatierte Werte drucken

So wie die Kenntnis des richtigen Zahlenformats für das erfolgreiche Lesen notwendig ist, ist es auch notwendig, die resultierenden Werte in einem bestimmten Format auszugeben. Meistens müssen Währungswerte wie Preise mit zwei Dezimalstellen angegeben werden. Andere Werte, wie z.B. ein Gewicht, erfordern möglicherweise drei Dezimalstellen.

Die Formatierung der Ausgabedaten sieht genauso aus wie beim Lesen, aber dieses Mal muss der formatierte Wert in zusätzlichen geschweiften Klammern angegeben werden.

Im Folgenden wird also ein Feld "Gewicht" neu formatiert. Es wurde im lokalen Format gelesen (welches auch immer das ist), soll nun aber ohne Tausendertrennzeichen, aber mit einem Dezimalkomma und drei Dezimalstellen ausgegeben werden:
{([Gewicht]),3}

Sie können das Ergebnis einer Formel (siehe auch Arithmetik) auch direkt formatieren.
Hier geht es um Geld, daher sind ein Dezimalpunkt und zwei Dezimalstellen erforderlich:
{([GrossPrice]-[Tax]).2}

Ändern des lokalen Formats

Solange die CSV Dateien Ihren lokalen Einstellungen folgen, müssen Sie beim Einlesen kein Zahlenformat angeben (außer den Klammern). Wenn es nur wenige numerische Felder gibt, können Sie deren Format direkt beim Einlesen angeben.

Alternativ können Sie Ihre Gebietsschema-Einstellung mit einem %locale Parameter innerhalb von CSVfox ändern. Dies kann praktischer sein, wenn die zu verarbeitende CSV Datei viele numerische Felder enthält, die alle einem identischen Format folgen, das nicht Ihrem aktuellen Gebietsschema entspricht (z.B. wenn Sie in Deutschland leben, aber mit einer CSV Tabelle arbeiten müssen, die Punkte als Dezimaltrennzeichen hat).
Under construction, coming soon