CSVfox
Leverage Your Data.
 Deutsch

Ausdrücke und ihre Auflösung

Ausdrücke und ihre Auflösung in CSVfox Befehlen

Allgemein

Ein Ausdruck ist eine Zusammenstellung von Platzhaltern und literalem Text in einer Zeichenkette.

Durch das Auflösen werden alle Platzhalter ersetzt, z.B. werden Formeln berechnet, Zahlen formatiert oder Spalteninhalte eingefügt.

Anschließend kann der aufgelöste Ausdruck, d.h. die fertige Textzeichenfolge, zum Einfügen in ein Spaltenfeld, zum Auswerten eines Vergleichs oder zu welchem Zweck auch immer verwendet werden.

Verwendung von Ausdrücken

Ausdrücke sind in den Befehlen von CSVfox allgegenwärtig.
Sie werden zur Laufzeit für jede einzelne CSV Datenzeile und für jedes einzelne CSV Datenfeld aufgelöst.

Ausdrücke können verwendet werden
  • als Inhalt verwendet werden, der einem CSV Feld zugewiesen wird:
    -add[Bruttopreis]=([Nettopreis]*[TaxFactor])
  • als Bedingung für die Ausführung eines Befehls:
    -if{...}//set[field]= ... 
  • als Filterbedingung für die Ausgabe von Datenzeilen in die Ausgabedatei:
    -filter[Obst]!c=Apfel/Birne
Ein Ausdruck für den Inhalt eines Feldes ergibt eine Zeichenfolge, die in dieses Feld eingefügt wird.
Als Bedingung oder Filter liefert ein Ausdruck oder ein Vergleich zweier Ausdrücke einen Wahrheitswert, der darüber entscheidet, ob die Bedingung erfüllt ist oder nicht.

Auflösen eines Ausdrucks

Auflösen bedeutet, alle notwendigen Ersetzungen innerhalb eines Ausdrucks vorzunehmen.

Dies ist eine der Hauptfunktionen von CSVfox, bei der die Ausgabedaten entsprechend Ihren Anforderungen aus der Eingabe erstellt werden.
Die Auflösung erfolgt zeilenweise, was bedeutet, dass alle (aber nur die) Daten der aktuellen Datenzeile für die Verarbeitung verfügbar sind.

Wenn die Auflösung auf der Eingabeseite erfolgt (+set, +replace, +regex, +add usw.), sind nur die Daten der aktuell gelesenen Eingabe- oder Seriendatei verfügbar. Die Auflösung auf der Ausgabeseite (-set, -replace, -regex, -add usw.) erfolgt anschließend und arbeitet mit allen Daten der Eingabe- und Seriendateien, die für die Ausgabe zu einer einzigen Datenzeile zusammengefasst werden.

Das Auflösen kann Folgendes umfassen:

  • Einfügen bekannter Daten, wie z.B. die aktuelle Zeilennummer für (#), oder den ursprünglichen Inhalt des aktuellen Feldes anstelle von [*]
  • die Umwandlung von escapeten Steuerzeichen und Codepunkt-Platzhaltern in die gewünschten Werte, siehe Platzhalter
  • Interpretieren, Umformatieren und Einfügen von numerischen Datenfeldern CSV
  • das Berechnen von Formeln aus numerischen CSV Datenfeldern und Ausdrücken und das Einfügen des (optional formatierten) Ergebnisses
  • und das Einfügen aller anderen CSV Felder und Variablen nach Bedarf.

Beispiel: Auflösen eines numerischen Ausdrucks

Wir haben eine einfache CSV Tabelle über die Verkaufspreise von Obst als Eingabedatei.

Wir möchten den Bruttoverkaufspreis zusammen mit einem Werbetext anzeigen. Leider haben wir nur die Nettopreise, aber glücklicherweise enthält die Tabelle auch den Umsatzsteuersatz.
ObstNettopreisUmsatzsteuer
Äpfel2,0019
Birnen3,0019
Jetzt erstellen wir eine weitere Spalte "Sonderangebot".
-add[Sonderangebot]="Nur heute: {([Nettopreis]*(1+([Umsatzsteuer]/100)),2} Euro!"

Dieser Befehl fügt der Ausgabedatei eine neue Spalte mit dem Namen "Sonderangebot" hinzu.
Der Teil rechts von "=" ist ein Ausdruck. Er besteht aus etwas Text, dann einer formatierten Formel (die aus zwei anderen Spalten berechnet wird), dann wieder Text.

Für jede einzelne Zeile ist dies dann der Ausdruck, der dem Spalteninhalt zugewiesen wird:
Nur heute: {([Nettopreis]*(1+([Umsatzsteuer]/100)),2} Euro!
Dieser Ausdruck muss aufgelöst werden und das Ergebnis wird in das neue Spaltenfeld [Sonderangebot] eingefügt.

Als Teil des Ausdrucks sehen wir eine Formel, die zuerst berechnet und formatiert werden muss:
{([Nettopreis]*(1+([Umsatzsteuer]/100)),2}
Zunächst wird der Wert der Spalte [Nettopreis] mit einem Faktor multipliziert, der sich aus dem Wert der Spalte [Umsatzsteuer] ergibt. Das Ergebnis wird für die Ausgabe mit Dezimalpunkt und zwei Nachkommastellen formatiert.

Dieser Wert wird in eine Zeichenfolge eingebettet, die mit "Nur heute: ", dann folgt die formatierte Zahl und am Ende steht " Euro!".

Diese Zeichenfolge wird der Inhalt der neuen Spalte [Sonderangebot].

Und dies ist die resultierende Ausgabedatei:

ObstNettopreisMehrwertsteuerSonderangebot
Äpfel2,0019Nur heute: 2,38 Euro!
Birnen3,0019Nur heute: 3,57 Euro!

Mehr über den Erhalt von CSV Feldinhalten finden Sie unter CSV Zugang zu Feldern.

Schutz vor Sonderzeichen

Verstecken Sie Sonderzeichen, damit sie nicht als Sonderzeichen interpretiert werden

Wenn Sie diese Sonderzeichen wie "[", ")" usw. auch in literalen Texten verwenden, müssen sie vor der Interpretation versteckt werden.
Dies erreichen Sie, indem Sie ihnen einen Backslash "\" voranstellen.
Weitere Einzelheiten finden Sie hier: Zeichen-Escaping und Platzhalter.

Under construction, coming soon