CSVfox
Get the job done.
 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[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
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 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

Als Eingabedatei haben wir eine einfache CSV Tabelle über die Preise von Obst im Verkauf.

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.
fruitnet pricesales tax
apples2,0019
pears3,0019
Jetzt erstellen wir eine weitere Spalte "Sonderangebot".
-add[Special offer]="Only today: {([net price]*(1+([sales tax]/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.

Dies ist dann für jede einzelne Zeile der Ausdruck, der dem Spalteninhalt zugeordnet wird:
Only today: {([Net price]*(1+([Sales tax]/100)),2} Euro!
Dieser Ausdruck muss aufgelöst werden und das Ergebnis wird in das neue [Special offer] Spaltenfeld eingefügt.

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

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 [Special offer].

Und dies ist die resultierende Ausgabedatei:

fruitnet pricesales taxspecial offer
Apples2,0019Only today: 2,38 Euro!
Pears3,0019Only 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 versteckt werden.
Dies erreichen Sie, indem Sie ihnen einen Backslash "\" voranstellen.
Weitere Einzelheiten finden Sie hier: Zeichen-Escaping und Platzhalter.

Under construction, coming soon