Texte auslesen

Beschreibung:

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.)

Bild 1:
Texte auslesen