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[GrossPrice]=([NetPrice]*[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[Fruit]!c=Apple/Pear
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 beinhalten:
- Einfügen bekannter Daten, wie z.B. die aktuelle Zeilennummer für
(#) , oder der ursprüngliche 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 CSV Datenfeldern
- 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.fruit | net price | sales tax |
---|---|---|
apples | 2,00 | 19 |
pears | 3,00 | 19 |
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.
Dies ist dann für jede einzelne Zeile der Ausdruck, der dem Spalteninhalt zugeordnet wird:
Dieser Ausdruck muss aufgelöst werden und das Ergebnis wird in das neue
Als Teil des Ausdrucks sehen wir eine Formel, die zunächst berechnet und formatiert werden muss:
Zunächst wird der Wert der Spalte
Dieser Wert wird in eine Zeichenfolge eingebettet, die mit "Nur heute: " beginnt, dann folgt die formatierte Zahl und am Ende steht " Euro!".
Diese Zeichenfolge wird der Inhalt der neuen Spalte
Und dies ist die resultierende Ausgabedatei:
fruit | net price | sales tax | special offer |
---|---|---|---|
Apples | 2,00 | 19 | Only today: 2,38 Euro! |
Pears | 3,00 | 19 | Only today: 3,57 Euro! |
Weitere Informationen zum Abrufen von CSV Feldinhalten finden Sie unter CSV Zugang zu Feldern.
Schutz vor Sonderzeichen
Verstecken Sie Sonderzeichen in Text oder Feldnamen, damit sie nicht als Sonderzeichen interpretiert werden.
Wenn Sie diese Sonderzeichen wie "[", ")" usw. auch in literalen Texten verwenden, müssen sie vor der Interpretation verborgen werden.
Dies erreichen Sie, indem Sie ihnen einen Backslash "\" voranstellen.
Weitere Einzelheiten finden Sie hier: Zeichen-Escaping und Platzhalter.