CSVfox
Leverage Your Data.
 Deutsch

Zeichen-Escaping und Platzhalter

Entschärfung von Sonderzeichen in CSVfox Befehlen

Verstecken von Sonderzeichen vor der Auflösung von Ausdrücken

Es gibt eine Handvoll Zeichen, die im Kontext von CSVfox Befehlen bzw. Kommandozeilen- oder Shell-Parametern eine besondere Bedeutung haben.

Wenn Sie eines dieser Sonderzeichen als Literale im Text oder Ausdruck verwenden müssen, muss es "escaped" werden. Dies verhindert eine Fehlinterpretation des Zeichens, wenn der Ausdruck von der Anwendung aufgelöst wird. Es ist dann vor der Interpretation als Sonderzeichen verborgen.
Das Escaping wird schließlich entfernt, und das beabsichtigte Zeichen bleibt erhalten.

Escaping von Zeichen

Das Escaping eines Zeichens erfolgt durch Voranstellen eines Backslash (\) vor dem Zeichen.

Jedes der Sonderzeichen in der folgenden Tabelle kann durch die Eingabe eines Backslashs vor dem Zeichen vor einer fehlerhaften Auflösung "versteckt" werden.

Beispiel:
Dieser Ausdruck:[Fish] steht für die Spalte mit dem Namen "Fish". Die eckigen Klammern besagen, dass dies ein Spaltenbezeichner ist. Er wird also jedes Mal, wenn er in einem auflösbaren Ausdruck erscheint, durch den aktuellen Textinhalt der Spalte "Fish" ersetzt (siehe Ausdrücke).
Aber dieser Ausdruck:\[Fish\] (mit "entschärften" eckigen Klammern!) steht für den wörtlichen Text "[Fish]". Er wird aufgelöst, indem er direkt durch den Text "[Fish]" ersetzt wird.

Für einen buchstäblichen Backslash "\" muss der Backslash selbst dupliziert werden: \\.

Tabellen der betreffenden Zeichen

Es gibt verschiedene Gründe, warum ein Zeichen nicht direkt in den Befehl eingegeben werden kann.

Interpretierte Zeichen

Diese Zeichen sind häufig Teil der CSVfox Befehlssyntax. Sie werden ausgeblendet, damit sie in wörtlichem Text verwendet werden können, ohne den Befehl selbst zu beeinträchtigen. Technisch gesehen, werden sie vor dem Befehlsinterpreter "versteckt" und später wieder "aufgedeckt".

Sequenz Zeichen Warum?
\[ [ Beginn der Spalte oder Variablenbezeichner
\] ] Ende des Spalten- oder Variablenbezeichners
\( ( Beginn eines numerischen Ausdrucks
\) ) Ende eines numerischen Ausdrucks
\{ { Beginn eines Textausdrucks
\} } Ende eines Textausdrucks
\< < Operator, siehe auch \L
\> > Operator, siehe auch \G
\\ \ Backslash, verwendet für "escaping"
\/ / Begrenzungszeichen für Operatoren, Befehle oder Argumentlisten
\= = Zuweisungsoperator, Befehls-/Argumententrennzeichen
\* * Operator
\# # Operator
\@ @ Operator oder Trennzeichen für Argumentausdrücke
\, , Teil eines Spaltenlistenausdrucks
\- - Teil eines Spaltenlistenausdrucks
Im Allgemeinen ist es nicht notwendig, jedes dieser Zeichen zu escapen, nur "in zweideutigen Situationen" (mit Ausnahme von Klammern, die immer escapet werden sollten!). Wenn Sie jedoch eine Fehlermeldung oder unerwünschte Effekte in der Befehlszeile sehen, sollten Sie danach Ausschau halten und stattdessen die Escape-Sequenz verwenden.

Sequenzen von Steuerzeichen

Die folgenden Sequenzen können in jedem literalen Text, in der Befehlszeile, in Bedingungen und in Ausdrücken verwendet werden. Sie werden beim Auflösen in die entsprechenden Steuerzeichen umgewandelt.

Diese Sequenzen werden NICHT konvertiert
- bei Dateinamenparametern der Befehle +in, -out, %merge, %log und %params. Der Grund dafür ist, dass die Sequenz ein regulärer Teil des Dateipfads sein könnte.
- im Muster des regulären Ausdrucks im Befehl ±regex und im rechten Operanden der Regex-Regel "@" von Bedingungen.

Steuerzeichen-Sequenzen
Sequenz Zeichen Name
\a 0x07 Glockenalarm
\b 0x08 Rücktaste
\t 0x09 Tabulator
\n 0x0A Neue Zeile
\v 0x0B Vertikaler Tabulator
\f 0x0C Formularvorschub
\r 0x0D Carriage Return
\e 0x1b Escape (27)
\s 0x20 Leerzeichen*
\P | "Pipe" Zeichen*
\L < Eingabe umleiten*
\G > Ausgabe umleiten*


* Diese Zeichen sind keine Steuerzeichen im eigentlichen Sinne, können aber in der Befehlszeile verwendet werden, um ein Leerzeichen, eine Pipe oder ein Umleitungssymbol einzufügen, das andernfalls das Argument trennen und ungültig machen würde.

Back References

Diese Zeichenfolgen kommen ausschließlich im Befehl ±regex als letzter Teil des Arguments "Original/Pattern/Replacement" vor.
Sie stehen für die passenden Rückverweise, die entsprechend dem Muster aus dem Original entnommen werden. Für reguläre Ausdrücke siehe auch https://en.wikipedia.org/wiki/Regular_expression

Die übereinstimmenden Gruppen werden im Ersetzungsteil durch referenziert:

\0, \1 - \9 oder
$0, $1 - $9.

wobei \0 oder $0 für den gesamten übereinstimmenden Ausdruck steht und die anderen für die übereinstimmenden Untergruppen in ihrer Reihenfolge stehen.

Erweiterte Zeichenplatzhalter

Zweck

Um die Eingabe beliebiger literaler Zeichenwerte zu ermöglichen, die auf der Tastatur nicht verfügbar sind, wird ein spezieller erweiterter Zeichenplatzhalter unterstützt.
Er sieht wie folgt aus:
{U+XXXXXX}
wobei X hexadezimale Ziffern von "0" bis "9", von "A" bis "F" und von "a" bis "f" sind.

Jede Anzahl von Ziffern zwischen 1 und 6 ist erlaubt, aber die maximal erlaubte Hexadezimalzahl ist 10FFFF, d.h. {U+10FFFF}. Dies entspricht dem maximal zulässigen Unicode-Zeichen (das jedoch im Allgemeinen nicht verwendet wird).
Dieser Platzhalter verwendet die Unicode-Codepunktnummerierung.

Wie Sie ihn verwenden

Welche Zeichen verwendet werden können, hängt letztlich von der Kodierung der Ausgabedatei ab. Wenn diese Kodierung z.B. ASCII ist, macht es keinen Sinn, darüber hinausgehende Zeichen einzufügen.

Beispiele:
Der Wert für ein Leerzeichen kann als {U+000020} geschrieben werden, oder einfach als {U+20}. Das kleine Zeichen "a" steht bei {U+61}.
Das griechische "Sigma" Σ, auch bekannt als Summenoperator, kann mit {U+03A3} eingefügt werden.
Und ein chinesisches Zeichen für "Haus" ist 屋, das auch als {U+5C4B} geschrieben werden kann.

Diese Platzhalter werden ersetzt, bevor eine andere Auflösung stattfindet. Sie können also sowohl als Teil von Spaltennamen als auch in beliebigem Text verwendet werden.

Under construction, coming soon