Textkomponenten heißen in RagTimes Scriptspache “text flows�. Ein text flow besteht aus paragraphs, words und characters.
Folgendes Script weist den Textinhalt einer ganzen Textkomponente einer Variable zu:
tell application "RagTime 6.5"
     tell document 1
          set derText to text flow 1 as text
     end tell
end tell
Beachten Sie dabei die Anweisung zur Typumwandlung, “as text�. Dies ist ungewöhnlich, aber ohne die Umwandlung wird der Text nicht korrekt zurück geliefert.
“as text� liefert liefert auch Text mit Zeichen aus anderen Schriftsystemen zurück, vgl. Abbildung.
Weitere typische Konstruktionen:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set derText to paragraphs 2 thru 6 as text
     end tell
end tell
weist “derText� den Textinhalt der Absätze 2 bis 6 zu. Etwas aufpassen muss man bei Wörtern: Der Code
tell application "RagTime 6.5" -- Problembeispiel!!!
     tell text flow 1 of document 1
          set derText to words 2 thru 6 as text
     end tell
end tell
führt zu meist unerwünschten Resultaten. RagTime liefert die Wörter als Liste zurück und AppleScript verbindet deren Bestandteile zu einem Text. Das Ergebnis ist die Sequenz der Wörter, getrennt vom aktuellen text item delimiter von AppleScript, ohne Satzzeichen etc. Die korrekte Sequenz liefert:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set derText to text from word 2 to word 6 as text
     end tell
end tell
Will man nur die Wörter, getrennt von Leerzeichen haben, kann man die erste Variante nehmen und den text item delimiter umsetzen:
tell application "RagTime 6.5" --Problembeispiel!!!
set AppleScript's text item delimiters to " "
tell text flow 1 of document 1
set derText to words 2 thru 3 as text
end tell
set AppleScript's text item delimiters to ""
end tell
(Man sollte den text item delimiter zum Schluss zurücksetzen, sonst kann es Nebenwirkungen auf andere Scripts geben.)
Texte werden am einfachsten mit “make new text� eingefügt:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          make new text at end with data " Schlusswort"
     end tell
end tell
Am Ende der Komponente wird “ Schlusswort� angehängt. Die Position kann mit den gängigen “at beginning�, “at end�, “at after� und “at before� erfolgen. Beispiele:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          make new text at after paragraph 2 with data "Dies ist ein zusätzlicher Absatz nach Absatz 2\r"
     end tell
end tell
Beachten Sie, dass nur am Ende des Textes ein Return steht, nicht am Anfang. “after paragraph� erzeugt immer einen neuen Absatz.
Eine Besonderheit von Texten ist, dass man oft dort etwas einfügen will, wo noch nichts steht. Soll heißen: Nicht Buchstabe 2 eines Absatzes soll auf xyz gesetzt werden, sondern zwischen Buchstabe 2 und 3 soll xyz eingefügt werden. In der von Apple normierten Text Suite ist das Hilfsmittel dafür der “insertion point�. Der folgender Code setzt am Anfang des zweiten Absatzes Text ein:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set insertion point before paragraph 2 to "Dies ist ein neuer Anfangssatz für Absatz 2. "
     end tell
end tell
Statt “before paragraph 2� könnte auch “after paragraph 1� stehen. Der Effekt wäre derselbe. In dieser Notation können Sie das Ende eines Absatzes ansprechen in der Form:
...
set insertion point after character -2 of paragraph 2 to...
...
Achten Sie darauf, dass der insertion point mit after oder before, nicht aber mit at benutzt wird: Das Ziel ist nicht ein bestehendes Objekt.
Formeln sind in RagTime Eigenschaften. Bei Tabellen ist es intuitiv recht klar, dass Formeln als Eigenschaften von Zellen gefasst werden. In Texten mag das zunächst etwas verblüffen. Man setzt nicht eine Formel an einer Textstelle ein sondern man setzt die Formeleigenschaft einer Textstelle.
Formeln werden am einfachsten als Eigenschaft des insertion point gesetzt. Bei der Gelegenheit kann auch gleich das Werteformat präzisiert werden.
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set insertion point before paragraph 2 to " "
          set formula of insertion point before paragraph 2 to "Heute()"
          set value format of first character of paragraph 2 to "Vollständiges Datum"
     end tell
end tell
fügt am Anfang des zweiten Absatzes ein automatisches Datum ein, gefolgt von einem Leerzeichen. Analog:
tell application "RagTime 6.5"
     tell text flow 1 of document 1
          set insertion point before paragraph 2 to "\t"
          set paragraph numbers of insertion point before paragraph 2 to ""
     end tell
end tell
Dieser Code setzt eine (römische) Absatznumerierung am Anfang von Absatz 2 ein, gefolgt von einem Tab. (Die Syntax für Absatznummer-Formeln finden Sie in der RagTime On-Screen-Referenz unter dem Stichwort “Absatznummern (Menü)�)