Datei- und Verzeichnislisten von FTP-Servern abrufen
Der FTP-Client benötigt die Liste der Dateien und Verzeichnisse im aktuellen Serververzeichnis. Sie sollte möglichst viele Informationen enthalten (Datum, Größe, Benutzer, Gruppe, Zugriffsrechte usw.). Die Einträge erscheinen im Dateifenster, wo Sie mit ihnen arbeiten können. Die Liste entsteht aus der vom FTP-Server empfangenen Klartextauflistung. Diese ist für Menschen und nicht zur automatischen Analyse gedacht. Daher hat nahezu jeder FTP-Server sein eigenes Listenformat, abhängig etwa von Betriebssystem und Sprache. Der FTP-Client muss deshalb viele Formate verarbeiten.
Für jedes Listenformat wird ein Servertyp definiert. Er enthält eine Bedingung zur automatischen Erkennung, eine Liste verfügbarer Datenspalten einschließlich ihrer Sichtbarkeit im Dateifenster sowie einen Parser für die Klartextauflistung. Alle definierten Servertypen erscheinen unter Konfiguration/Server. Im Dialog Servertyp bearbeiten können Sie neue Typen hinzufügen oder vorhandene bearbeiten.
Sie können wählen, ob der Servertyp automatisch erkannt werden soll. Andernfalls wählen Sie den zu verwendenden Typ. Siehe Option Servertyp im Dialog Erweiterte Einstellungen.
Datei- und Verzeichnislisten mit vorgegebenem Servertyp abrufen
Der vorgegebene Servertyp wird zum Parsen der Klartextauflistung verwendet. Bei Erfolg ist die Datei- und Verzeichnisliste das Ergebnis. Andernfalls warnt das Plugin und zeigt nur die Klartextauflistung im Dateifenster an, auf der keine Operationen möglich sind.
Das Verzeichnis „.“ wird, sofern vorhanden, aus der Liste entfernt. Dasselbe gilt für „..“, wenn es in der Auflistung des Wurzelverzeichnisses enthalten ist. Ein verbleibendes „..“ ist immer sichtbar; das Attribut Versteckt wird ignoriert.
Datei- und Verzeichnislisten mit automatisch erkanntem Servertyp abrufen
Alle definierten Servertypen werden nacheinander geprüft. Für jeden wird die Erkennungsbedingung ausgewertet. Ist sie falsch, wird der Typ übersprungen und der nächste geprüft. Ist sie wahr, wird damit die Klartextauflistung geparst. Bei Erfolg ergibt sich die Datei- und Verzeichnisliste, andernfalls wird der nächste Typ geprüft.
War kein Servertyp beim Parsen erfolgreich, werden alle wegen ihrer Erkennungsbedingung übersprungenen Typen nacheinander versucht. Bei erfolgreichem Parsen ergibt sich die Datei- und Verzeichnisliste; andernfalls wird jeweils der nächste Typ geprüft.
Scheitert das Parsen mit allen definierten Servertypen, warnt das Plugin und zeigt nur die Klartextauflistung im Dateifenster an, auf der keine Operationen möglich sind.
Die automatische Servertyperkennung erfolgt nur für die erste Auflistung eines Servers. Derselbe Typ wird für alle weiteren verwendet, sodass etwa auch bei leeren Listen dieselben Spalten angezeigt werden. Lässt sich eine Liste damit nicht parsen, versucht das Plugin, einen anderen Servertyp automatisch zu erkennen.
Das Verzeichnis „.“ wird, sofern vorhanden, aus der Liste entfernt. Dasselbe gilt für „..“, wenn es in der Auflistung des Wurzelverzeichnisses enthalten ist. Ein verbleibendes „..“ ist immer sichtbar; das Attribut Versteckt wird ignoriert.
Parsersyntax
Ein Zeilenkommentar beginnt mit „#“ und endet am Zeilenende.
Jede Regel beginnt mit „*“ und endet mit „;“. Die Anzahl der Regeln ist unbegrenzt. Eine Regel besteht aus durch „,“ getrennten Funktionen.
Eine Funktion besteht aus Name, „(“, Parameterliste und „)“. Die vollständige Funktionsliste folgt weiter unten auf dieser Seite.
Parameter in der Parameterliste werden durch „,“ getrennt. Parameter sind Ausdrücke.
Ein Ausdruck ist ein Spaltenbezeichner, eine Zustandsvariable, eine Konstante oder eine binäre Operation. Diese hat die Standardform first_operand operation_symbol second_operand. Ein Operand kann Spaltenbezeichner, Zustandsvariable oder Konstante sein.
Ein Spaltenbezeichner besteht aus dem Zeichen „<“, dem Bezeichnernamen und dem Zeichen „>“.
Die vollständigen Listen der Zustandsvariablen und Operationssymbole folgen weiter unten auf dieser Seite.
Eine Konstante ist eine Zeichenfolge, eine Zahl oder ein boolescher Wert.
Eine Zeichenfolge steht in doppelten Anführungszeichen ("), in einer einzelnen Zeile. Escape-Sequenzen beginnen mit „\“. Unterstützt sind „\\“ für „\“, „\"“ für „"“, „\t“ für Tabulator sowie „\r“ und „\n“ für die Zeilenendezeichen CR und LF. Andere Escape-Sequenzen werden als Syntaxfehler gemeldet.
Eine Zahl besteht aus Dezimalziffern. Negative Zahlen beginnen mit „-“, positive mit „+“, das weggelassen werden kann.
Ein boolescher Wert lautet „true“ oder „false“, ohne doppelte Anführungszeichen geschrieben.
Spalten
Jede Spalte besitzt einen Bezeichnernamen, Werttyp, Leerwert, Anzeigenamen und Beschreibung für das Dateifenster sowie eine Werteausrichtung. Der Bezeichnername wird im Spaltenbezeichner zum Zuweisen von Werten verwendet. Jede Spalte kann pro Element (Datei oder Verzeichnis) nur einen Wert enthalten. Ohne Zuweisung wird ihr definierter Leerwert verwendet. Spalten können sichtbar oder verborgen sein; nur die Typen Name und Erweiterung sind immer sichtbar. Spalten werden im Dialog Spalten bearbeiten definiert.
Folgende Spaltentypen stehen zur Verfügung:
| Typ | Beschreibung |
|---|---|
| Name | Zeichenfolge; Datei- oder Verzeichnisname; exakt eine Spalte dieses Typs ist erforderlich und kann nicht ausgeblendet werden. Ein Leerwert ist hier nicht sinnvoll. Der Parser muss für jede Datei und jedes Verzeichnis einen Wert zuweisen. Ohne Zuweisung fügt das Parsen mit der aktuellen Regel weder Datei noch Verzeichnis hinzu; dies dient zum Überspringen leerer Zeilen und unwichtiger Teile der Auflistung. Die Zuweisung einer leeren Zeichenfolge ("") gilt als Parserfehler. |
| Erweiterung | Zeichenfolge; Dateierweiterung; Werte werden automatisch aus der Spalte vom Typ Name erzeugt. Die Spalte kann nicht ausgeblendet werden; ein Leerwert ist nicht sinnvoll. |
| Dateigröße in Bytes | Vorzeichenlose 64-Bit-Ganzzahl; Dateigröße in Bytes. Bei allen Verzeichnissen ist der Wert null und wird als „DIR“ angezeigt. Der Standard-Leerwert ist null. |
| Datum des letzten Schreibzugriffs | Datum; letztes Schreib- bzw. Änderungsdatum. Ungültige Datumswerte werden durch den 1. Januar 1602 ersetzt; dies ist auch der Standard-Leerwert. |
| Zeit des letzten Schreibzugriffs | Uhrzeit; letzte Schreib- bzw. Änderungszeit. Der Standard-Leerwert ist 0:00:00. |
| Dateityp | Zeichenfolge; Dateitypbeschreibung, von Windows für Dateierweiterungen definiert. Werte werden automatisch aus der Spalte vom Typ Name erzeugt; ein Leerwert ist nicht sinnvoll. |
| Beliebiger Text | Zeichenfolge; allgemeiner Zweck; der Standard-Leerwert ist die leere Zeichenfolge (""). |
| Beliebiges Datum | Datum; allgemeiner Zweck. Ungültige Datumswerte werden durch den 1. Januar 1602 ersetzt. Der Standard-Leerwert ist die leere Zeichenfolge (""); ohne Zuweisung erscheint nichts im Dateifenster. |
| Beliebige Uhrzeit | Uhrzeit; allgemeiner Zweck. Der Standard-Leerwert ist die leere Zeichenfolge (""); ohne Zuweisung erscheint nichts im Dateifenster. |
| Beliebige Zahl | Vorzeichenbehaftete 64-Bit-Ganzzahl; allgemeiner Zweck. Der Standard-Leerwert ist die leere Zeichenfolge (""); ohne Zuweisung erscheint nichts im Dateifenster. |
Zusätzlich existieren drei virtuelle Spalten mit den Bezeichnern <is_dir>, <is_hidden> und <is_link>. Sie erhalten boolesche Werte und bedeuten: „Ist dieses Element ein Verzeichnis?“ (false bedeutet Datei), „Ist es versteckt?“ (false bedeutet ohne Versteckt-Attribut) und „Ist es eine Verknüpfung?“ (false bedeutet keine Verknüpfung). Eine Zuweisung ist nicht erforderlich; ihre Leerwerte lauten „ist eine Datei“, „ist nicht versteckt“ und „ist keine Verknüpfung“.
Syntax der Erkennungsbedingung
Die Erkennungsbedingung ist ein logischer Ausdruck. Seine Operatoren sind mit absteigender Priorität NOT, AND und OR. NOT (logische Negation) ist einstellig, AND (logische Konjunktion) und OR (logische Disjunktion) sind zweistellig. Der Ausdruck kann geklammerte Teilausdrücke enthalten. Als Operanden stehen folgende Funktionen bereit:
| Funktion | Beschreibung |
|---|---|
| syst_contains(string) | Gibt nur dann true zurück, wenn eine Antwort auf den FTP-Befehl SYST (Betriebssystemtyp des Servers abfragen) die angegebene Zeichenfolge enthält; Groß-/Kleinschreibung wird ignoriert. |
| welcome_contains(string) | Gibt nur dann true zurück, wenn die erste Servermeldung die angegebene Zeichenfolge enthält; Groß-/Kleinschreibung wird ignoriert. |
| reg_exp_in_syst(regular_expression_string) | Gibt nur dann true zurück, wenn eine Antwort auf den FTP-Befehl SYST (Betriebssystemtyp des Servers abfragen) eine zum regulären Ausdruck passende Zeichenfolge enthält; Groß-/Kleinschreibung wird ignoriert. |
| reg_exp_in_welcome(regular_expression_string) | Gibt nur dann true zurück, wenn die erste Servermeldung eine zum regulären Ausdruck passende Zeichenfolge enthält; Groß-/Kleinschreibung wird ignoriert. |
Parsen
Das Parsen ist erfolgreich, wenn die Klartextauflistung mit den definierten Regeln vollständig durchlaufen wurde.
Die aktuelle Position in der Auflistung wird als Zeiger bezeichnet. Beim Parsen bewegt er sich vom Anfang zum Ende der Auflistung.
Eine Regel ist nur anwendbar, wenn alle ihre Funktionen erfolgreich ausgewertet werden, der Spalte vom Typ Name keine leere Zeichenfolge zugewiesen wird (eine nicht leere Zeichenfolge oder keine Zuweisung ist zulässig) und der Zeiger ans Ende irgendeiner Listenzeile bewegt wird. Nach der Anwendung einer Regel wird der Zeiger immer an den Anfang der nächsten Zeile gesetzt.
Bei der Auswertung kann eine Funktion den Zeiger bewegen und Spaltenwerte zuweisen oder ändern.
Der Parser kann beliebig viele Regeln enthalten. Sie werden stets in Definitionsreihenfolge versucht; es wird also immer die erste anwendbare Regel verwendet.
Die Auflistung kann unvollständig sein, wenn der Benutzer ihre Übertragung abbricht oder ein Netzwerkfehler auftritt. Sie wird dann so gekürzt, dass sie nur vollständige Textzeilen enthält.
Das Parsen unvollständiger Listen wird auf Regelebene behandelt. Im einfachen Fall wird der Zeiger durch Regeln ans Ende der unvollständigen Liste bewegt; damit endet das Parsen erfolgreich. Andernfalls müsste eine Funktion der aktuellen Regel den Zeiger in die nächste Zeile bewegen. Da dies bei der unvollständigen Liste nicht möglich ist, endet das Parsen ebenfalls erfolgreich – so, als wären die von der aktuellen Regel durchlaufenen Zeilen nicht in der Liste enthalten.
Unterstützte Dateigrößen
Das Plugin unterstützt Dateigrößen in Bytes und Blöcken. Die Größe sollte der Spalte vom Typ Dateigröße in Bytes zugewiesen werden, wenn sie in Bytes vorliegt, oder einer Spalte vom Typ Beliebige Zahl mit dem Standardnamen „Blocks“ oder „BlkSize“. Dann erscheint die Gesamtgröße in Bytes oder Blöcken in der Statusleiste, wenn Sie eine Dateigruppe auswählen.
Parserfunktionen
Sofern nicht ausdrücklich anders angegeben, ist eine Funktion immer erfolgreich, bewegt den Zeiger nicht und weist keiner Spalte einen Wert zu. Bewegt sie den Zeiger, darf dieser ohne ausdrückliche anderslautende Angabe das Zeilenende nicht zur nächsten Zeile überschreiten.
Vor Verwendung eines Spaltenbezeichners in einem Ausdruck muss dieser Spalte ein Wert zugewiesen werden. Andernfalls ist der Ausdruck nicht sinnvoll; er könnte durch die boolesche Konstante ersetzt werden, die sich mit dem Standard-Leerwert der Spalte ergibt.
Hinweis: In der folgenden Tabelle bedeutet Leerraum ein Leerzeichen oder Tabulatorzeichen.
Folgende Parserfunktionen stehen zur Verfügung:
| Funktion | Beschreibung |
|---|---|
| if(expression) | Das Ergebnis des Ausdrucks (Parameter expression) muss boolesch sein; die Funktion ist erfolgreich, wenn es true ist. |
| assign(<column>, expression) | Der Ergebnistyp des Ausdrucks (Parameter expression) muss dem Werttyp der Spalte (Parameter <column>) entsprechen; weist das Ausdrucksergebnis der Spalte zu. |
| skip_white_spaces() | Überspringt allen Leerraum an der Zeigerposition und bewegt den Zeiger dahinter, sofern vorhanden. |
| skip_to_number() | Bewegt den Zeiger zur nächsten Dezimalziffer. |
| white_spaces() | Überspringt allen Leerraum an der Zeigerposition; nur erfolgreich, wenn sich der Zeiger bewegt. |
| white_spaces(number) | Überspringt eine Zeichenfolge mit der angegebenen Anzahl (Parameter number) von Leerraumzeichen an der Zeigerposition und bewegt den Zeiger dahinter; nur erfolgreich, wenn eine solche Folge existiert. |
| white_spaces_and_line_ends() | Überspringt alle Leerraum- und Zeilenendezeichen an der Zeigerposition; nur erfolgreich, wenn sich der Zeiger bewegt und nicht am Listenende steht, also dahinter ein anderes Zeichen gefunden wurde. |
| rest_of_line() | Bewegt den Zeiger ans Zeilenende; nur erfolgreich, wenn sich der Zeiger bewegt. |
| rest_of_line(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Weist ihr den Text von der Zeigerposition bis vor das Zeilenende zu und bewegt den Zeiger ans Zeilenende; nur erfolgreich, wenn er sich bewegt. |
| word() | Überspringt alle Zeichen außer Leerraum- und Zeilenendezeichen; nur erfolgreich, wenn sich der Zeiger bewegt. |
| word(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Weist ihr den Text von der Zeigerposition bis vor das erste Leerraum- oder Zeilenendezeichen zu und bewegt den Zeiger dahinter; nur erfolgreich, wenn er sich bewegt. |
| number(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Ganzzahl sein. Weist ihr eine an der Zeigerposition beginnende Dezimalzahl zu. Darauf muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zahl; nur erfolgreich, wenn sie vorhanden und korrekt abgeschlossen ist. Beim Spaltentyp Dateigröße in Bytes darf sie nicht negativ sein. |
| positive_number(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Ganzzahl sein. Weist ihr eine an der Zeigerposition beginnende positive Dezimalzahl zu. Bei einer negativen Zahl wird der Standard-Leerwert zugewiesen: null für Dateigröße in Bytes, leere Zeichenfolge für Beliebige Zahl. Es muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zahl; nur erfolgreich, wenn sie vorhanden und korrekt abgeschlossen ist. |
| number_with_separators(<column>, string) | Der Werttyp der Spalte (Parameter <column>) muss Ganzzahl sein. Weist ihr eine Dezimalzahl mit Zifferngruppierungszeichen ab der Zeigerposition zu. Die zum leichteren Lesen großer Zahlen erlaubten Trenner stehen im Parameter string; zulässig sind alle Zeichen außer Dezimalziffern, „+“ und „-“. Darauf muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zahl; nur erfolgreich, wenn sie vorhanden und korrekt abgeschlossen ist. Beim Typ Dateigröße in Bytes darf sie nicht negativ sein. |
| month_3(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr einen durch drei Buchstaben dargestellten Monat an der Zeigerposition zu. Unterstützt derzeit Monatsnamen auf Englisch, Deutsch, Norwegisch und Schwedisch. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter den Monatsnamen; nur erfolgreich, wenn er bekannt ist und alle Monatsnamen der Liste aus derselben Sprache stammen. |
| month_3(<column>, string) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr einen durch drei Buchstaben dargestellten Monat an der Zeigerposition zu. Verwendet die im Parameter string angegebenen zwölf dreibuchstabigen, durch Leerzeichen getrennten Monatsnamen, etwa „jan feb mar apr may jun jul aug sep oct nov dec“ für Englisch. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter den Monatsnamen; nur erfolgreich, wenn dieser in der Zeichenfolge enthalten ist. |
| month_txt(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr einen durch seinen Namen dargestellten Monat an der Zeigerposition zu. Unterstützt derzeit deutsche Monatsnamen. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter den Monatsnamen; nur erfolgreich, wenn er bekannt ist und alle Monatsnamen der Liste aus derselben Sprache stammen. |
| month_txt(<column>, string) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr einen durch seinen Namen dargestellten Monat an der Zeigerposition zu. Verwendet die im Parameter string angegebenen zwölf durch Leerzeichen getrennten Monatsnamen, etwa „Jan. Feb. März Apr. Mai Juni Juli Aug. Sept. Okt. Nov. Dez.“ für Deutsch. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter den Monatsnamen; nur erfolgreich, wenn er in der Zeichenfolge enthalten ist. |
| month(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr einen durch eine Dezimalzahl dargestellten Monat an der Zeigerposition zu. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zahl; nur erfolgreich bei einem Wert von 1 bis 12. |
| day(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr einen durch eine Dezimalzahl dargestellten Tag an der Zeigerposition zu. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zahl; nur erfolgreich bei einem Wert von 1 bis 31. |
| year(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Datum sein. Weist ihr ein durch eine Dezimalzahl dargestelltes Jahr an der Zeigerposition zu. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zahl; nur erfolgreich im Bereich 0 bis 999 (bei 0 bis 79 wird 2000 addiert, bei 80 bis 999 wird 1900 addiert, etwa wird 107 zu 2007) oder 1602 bis 9999. |
| time(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Uhrzeit sein. Weist ihr Stunden, Minuten und optional Sekunden und Millisekunden als Dezimalzahlen an der Zeigerposition zu. Unterstützte Formate: 00:00, 00:00:00 oder 00:00:00.000. Nachgestelltes „a“, „am“, „p“ oder „pm“ kennzeichnet Vormittag bzw. Nachmittag; der Zeitwert wird entsprechend korrigiert. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, weder Buchstabe noch Ziffer. Bewegt den Zeiger hinter den Zeitwert; nur erfolgreich bei gültigen Bereichen 0–23, 0–59, 0–59 und 0–999. |
| year_or_time(<column_date>, <column_time>) | Die Werttypen der Spalten (Parameter <column_date> und <column_time>) müssen Datum und Uhrzeit sein. Weist Jahr und optional Uhrzeit mit Stunden und Minuten ab der Zeigerposition zu, dargestellt als Dezimalzahl für das Jahr oder zwei durch „:“ getrennte Dezimalzahlen für die Uhrzeit. Unterstützt das Standard-Unix-Format: Bei einer Jahreszahl ist die Uhrzeit unbekannt; bei einer Uhrzeit wird das Jahr aus dem aktuellen Datum so berechnet, dass das gesamte Datum höchstens sechs Monate zurückliegt. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter Jahr oder Uhrzeit; nur erfolgreich bei gültigen Werten in den Bereichen 1602–9999 und 0–23:0–59. |
| all(number) | Überspringt die angegebene Anzahl von Zeichen (Parameter number) und bewegt den Zeiger dahinter; nur erfolgreich, wenn alle angegebenen Zeichen übersprungen wurden. |
| all(<column>, number) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Weist ihr ab der Zeigerposition eine Zeichenfolge mit der angegebenen Zeichenzahl (Parameter number) zu und bewegt den Zeiger dahinter; nur erfolgreich, wenn eine solche Zeichenfolge existiert. |
| all_to(string) | Sucht ohne Beachtung der Groß-/Kleinschreibung das erste Vorkommen der angegebenen Zeichenfolge (Parameter string) und bewegt den Zeiger dahinter; nur erfolgreich, wenn sie gefunden wurde. |
| all_to(<column>, string) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Weist ihr den Text von der Zeigerposition bis einschließlich des ersten Vorkommens der angegebenen Zeichenfolge (Parameter string) zu; die Suche ignoriert Groß-/Kleinschreibung. Bewegt den Zeiger hinter die gefundene Zeichenfolge; nur erfolgreich, wenn sie gefunden wurde. |
| all_up_to(<column>, string) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Weist ihr den Text von der Zeigerposition bis vor das erste Vorkommen der angegebenen Zeichenfolge (Parameter string) zu; die Suche ignoriert Groß-/Kleinschreibung. Bewegt den Zeiger hinter die gefundene Zeichenfolge; nur erfolgreich, wenn sie gefunden wurde. |
| unix_link(<is_dir>, <column_name>, <column_link>) | Die Typen der Spalten <column_name> und <column_link> müssen Name und Beliebiger Text sein. Verarbeitet Text von der Zeigerposition bis vor das Zeilenende und bewegt den Zeiger dahinter. Erwartet das übliche Unix-Linkformat „link_name -> target_name“ oder „link_name“, wenn das Ziel nicht zugänglich ist. Ermittelt Linknamen und optional Ziel und erkennt, ob der Link auf eine Datei oder ein Verzeichnis verweist. Heuristik: Enthält Name oder Ziel eine Erweiterung, ist es vermutlich ein Dateilink, sonst ein Verzeichnislink. Passt dies nicht, können Sie etwa „assign(<is_dir>,false)“ hinter unix_link ergänzen. Weist den Linknamen der Spalte <column_name> und ein bekanntes Ziel der Spalte <column_link> zu. Bei einem Verzeichnislink erhält die virtuelle Spalte <is_dir> den Wert true. Nur erfolgreich, wenn der Text das erwartete Format hat und nicht mit Leerraum beginnt. |
| unix_device(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Weist ihr ab der Zeigerposition eine Zeichenfolge mit zwei durch Komma und mehrere Leerzeichen getrennten Dezimalzahlen zu, etwa „27, 26“. Danach muss ein übliches Trennzeichen (Komma, Punkt, Semikolon, Doppelpunkt usw.), Leerraum oder Zeilenende folgen, kein Buchstabe. Bewegt den Zeiger hinter die Zeichenfolge; nur erfolgreich, wenn sie gefunden wird. |
| add_string_to_column(<column>, expression) | Der Werttyp der Spalte (Parameter <column>) und der Ergebnistyp des Ausdrucks (Parameter expression) müssen Zeichenfolge sein. Hängt das Ausdrucksergebnis an den Spaltenwert an. |
| cut_white_spaces_end(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Entfernt Leerraum am Ende der Zeichenfolge und weist das Ergebnis der Spalte zu. |
| cut_white_spaces_start(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Entfernt Leerraum am Anfang der Zeichenfolge und weist das Ergebnis der Spalte zu. |
| cut_white_spaces(<column>) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Entfernt Leerraum am Anfang und Ende der Zeichenfolge und weist das Ergebnis der Spalte zu. |
| back(number) | Bewegt den Zeiger um die angegebene Anzahl von Zeichen (Parameter number) zurück; nur erfolgreich, wenn dies möglich ist. Ein Wechsel in die vorherige Zeile ist nicht möglich. |
| cut_end_of_string(<column>, number) | Der Werttyp der Spalte (Parameter <column>) muss Zeichenfolge sein. Entfernt die angegebene Zeichenzahl (Parameter number) vom Ende und weist das Ergebnis der Spalte zu; nur erfolgreich, wenn die ursprüngliche Länge mindestens number betrug. |
Beim Parsen verwendete Zustandsvariablen
Folgende Zustandsvariablen stehen zur Verfügung:
| Variable | Beschreibung |
|---|---|
| first_nonempty_line | Boolesch; nur true, wenn der Zeiger in der ersten nicht leeren Zeile steht, die also nicht nur Leerraum enthält. |
| last_nonempty_line | Boolesch; nur true, wenn der Zeiger in der letzten nicht leeren Zeile steht, die also nicht nur Leerraum enthält. Ob die Liste vollständig oder unvollständig ist, wird ignoriert. |
| next_char | Zeichenfolge mit dem Zeichen an der Zeigerposition; am Listenende ist sie leer. |
| next_word | Zeichenfolge von der Zeigerposition bis vor das erste Leerraum- oder Zeilenendezeichen. |
| rest_of_line | Zeichenfolge von der Zeigerposition bis vor das Zeilenende. |
Beim Parsen verwendete Operatoren
Vor Verwendung eines Spaltenbezeichners in einem Ausdruck muss dieser Spalte ein Wert zugewiesen werden. Andernfalls ist der Ausdruck nicht sinnvoll; er könnte durch die boolesche Konstante ersetzt werden, die sich mit dem Standard-Leerwert der Spalte ergibt.
Folgende Operatoren stehen zur Verfügung:
| Operator | Beschreibung |
|---|---|
| == | Gleichheit; Zeichenfolgenvergleich beachtet Groß-/Kleinschreibung. |
| != | Ungleichheit; Zeichenfolgenvergleich beachtet Groß-/Kleinschreibung. |
| eq | Zeichenfolgengleichheit; nur für Zeichenfolgen; Groß-/Kleinschreibung wird ignoriert. |
| not_eq | Zeichenfolgenungleichheit; nur für Zeichenfolgen; Groß-/Kleinschreibung wird ignoriert. |
| in | Teilzeichensuche; nur true, wenn die Teilzeichenfolge (linker Operand) in der Zeichenfolge (rechter Operand) enthalten ist; Groß-/Kleinschreibung wird ignoriert. |
| not_in | Nur true, wenn die Teilzeichenfolge (linker Operand) nicht in der Zeichenfolge (rechter Operand) enthalten ist; Groß-/Kleinschreibung wird ignoriert. |
| end_with | Nur true, wenn die Zeichenfolge (linker Operand) mit der Teilzeichenfolge (rechter Operand) endet; Groß-/Kleinschreibung wird ignoriert. |
| not_end_with | Nur true, wenn die Zeichenfolge (linker Operand) nicht mit der Teilzeichenfolge (rechter Operand) endet; Groß-/Kleinschreibung wird ignoriert. |
Siehe auch
Konfiguration/Server
Dialog Servertyp bearbeiten
Dialog Spalten bearbeiten
Dialog Testen der Regeln
From the Sally manual (GPL-2.0-or-later), © 1997-2023 Open Salamander Authors; © 2025-2026 Elias Bachaalany. Source: manual source (zip) · original page in the Sally repository