Text butler

Aus Info-Theke
Version vom 14. Juni 2021, 04:07 Uhr von Hamatoma (Diskussion | Beiträge) (Hamatoma verschob die Seite TextButler nach Text butler, ohne dabei eine Weiterleitung anzulegen)
Zur Navigation springen Zur Suche springen


Links

Zielsetzung

Der Textmanipulator erlaubt die "Wandlung von Text", wobei ein Eingabetext in einen Ausgabetext gewandelt wird, aber auch "Informationen" über einen Text.

Als Wandlung gibt es:

  • "Multiplizierung": ein Text erscheint mehrfach, wobei Teile sich ändern, beispielsweise eine laufende Nummer.
  • Filterung: Durch Angabe von Suchmuster werden nur Teile der Vorlage übernommen
  • Löschungen: Durch Angabe von Suchmuster werden Teile der Vorlage entfernt
  • Ersetzungen: Durch Angabe eines Suchmusters und eines Ersatzes werden Teile gewandelt. Im Ersatztext können Referenzen auf die Trefferstelle enthalten sein.

Als Informationen gibt es:

  • Die Anzahl eines Suchmusters

Aufbau

Die Aktionen werden mit "Kommandos" in einer Eingabezeile spezifiziert. Jedes Kommando hat Parameter.

Das Programm verwaltet beliebig viele Textpuffer, die mit Namen gekennzeichnet sind. Es gibt vordefinierte Puffer:

  • input: wird standardmäßig als Vorlage der Wandlung benutzt.
  • output: wird standardmäßig als Ziel der Wandlung benutzt.
  • history: dort werden die Kommandos hinterlegt. Fehlerhafte Kommandos werden mit führendem "#" gekennzeichnet.
  • examples: zu jedem Kommando gib es dort mindestens ein Beispiel, es werden die wichtigsten Parameter aufgeführt.

Das Programm bietet vier Textbereiche, für jeden Bereich kann mit einer Combobox bestimmt werden, welcher Puffer dort angezeigt wird. Jeder Puffer kann nur einmal angezeigt werden. Stellt man einen Puffer ein, der schon eine andere Anzeige hat, wird dieser Anzeige ein anderer noch nicht angezeigter Puffer zugeordnet.

Kommandos können so lange verkürzt werden, wie die Eingabe eindeutig ist, ebenso die Parameter: Beispielsweise gibt es die Kommandos "clear", "copy" und "count". "cl" ist also eindeutig, oder "cop" oder "cou", nicht aber "c" oder "co".

Kommandos

Kommandos bestehen aus dem Kommandonamen und Parametern, die mit parameter=wert angegeben werden, außer bei boolschen Parameter, da entfällt die "Zuweisung".

Parameter mit Texten benötigen Delimiter. Jedes Zeichen außer Buchstaben und Ziffern darf als Delimiter benutzt werden, wichtig ist nur, dass der gewählte Delimiter am vor und nach dem String stehen. Zulässige Beispiele sind regexpr=!<a href="#">(.*?)</a>!, what="super" oder text=?Delimiter sind " oder '?.

clear

Es kann ein Puffer gelöscht werden. Existiert der Puffer noch nicht, wird er angelegt.

Parameter

  • output: spezifiziert den Puffer, der gelöscht wird. Voreinstellung: "output"

Beispiel

clear o=history

Danach ist die Historie leer.

copy

Kopiert einen Puffer in einen anderen, oder einen festen Text in einen Puffer.

Parameter

  • append: wenn angeben, wird die Vorlage an das Ziel angehängt.
  • input: Puffer, der kopiert wird. Voreinstellung: input
  • output: Ziel der Kopieraktion. Voreinstellung: output
  • text: kann alternativ zu input angegeben werden. Dann wird dieser Text ins Ziel kopiert.

Beispiele

Im Puffer "input" steht "Hello World", im Puffer "todo" steht "Greetings\n".

copy out=todo append

Danach steht in "todo": "Greetings\nHello World".

copy text="Hi Jonny!"

Danach steht in Puffer "output" der Wert "Hi Jonny!".

count

Zählt das Vorkommen eines Suchmusters in einem Puffer.

Parameter

  • append: Ergebnis wird an vorhandenen Text im Zielpuffer angehängt.
  • ignore: Groß-/Kleinschreibung spielt keine Rolle.
  • input: in diesem Puffer wird gesucht. Voreinstellung: input
  • output: Das Ergebnis wird in diesem Puffer ausgegeben. Voreinstellung: output
  • marker: definiert einen Platzhalter für die Ergebniszahl in template. Voreinstellung: '#'
  • template: Vorlage, wie die Ergebnismeldung aussieht. Muss marker enthalten. Voreinstellung: der Wert von marker
  • regexpr: Suchmuster als regulärer Ausdruck.
  • what: Suchmuster als String ohne Metazeichen.

Hinweis: Es darf nur entweder regexpr oder what angegeben werden, nicht beide oder keiner.

Beispiele

Im Puffer "input" steht: "Be or not to be, that's the question!\nHic Rhodos, Hic salta!"

count what="e"

Danach steht in "output": 4

count regex=/\S+/ template="# Wörter" output=statistic
count regexpr=/[.;!?]/ t=', # Sätze' o=statistic append
count regexpr=/./ t=', # Zeichen' o=statistic append

Danach steht im Puffer "statistic": "12 Wörter, 2 Sätze, 59 Zeichen".