文字列を処理するには「何番目の文字を入れ替えて・・・」という風に、特定の文字列が何文字目かを知ることができると便利です。
単純に文字数を知るにはlengthが便利です。
set cn to the length of "I love you"
display dialog "cn:" & cn
cnは10となります。
文字列だけでなく、単語数、段落数を知るには、numberを使うと便利です。
set cn to the number of characters of "I love you"
set wn to the number of words of "I love you"
display dialog "cn:" & cn & ", wn:" & wn
cnは10、wnは3となります。
文字範囲を指定するには、thruを使います。
このとき、注意すべきは、文字列をデータとして扱うかテキストとして扱うかで結果が分かれることです。
applescriptでは、文字列データに対して set a to characters 1 thru 5 of data と書くと、characterのリストを作ることになります。
いっぽう、文字列テキストに対して set a to characters 1 thru 5 of data_text と書くと、それは、一文字目から5文字目までのテキストを作ることになります。下の例を見て下さい。
set lc to characters 1 thru 5 of "I love you"
(このとき、lcは {"I", " ", "l", "o", "v", "e"}になる)
set tc to characters 1 thru 5 of "I love you" as text
(このとき、tcは "I love"になる)
ですから、テキストを取り出したいときは "as text"を入れるのを忘れずに。
thruは便利な指定方法ですが、ひとつ難点があります。それは、複数のwordを取り出すときに、単語だけを抜き出して区切り文字を省略してしまうことです。たとえば次の例。
set wtext to words 1 thru 3 of "I love you very much" as text
display dialog wtext
あらら、「Iloveyou」になっちゃいました。
こんなときは、以下のようにtext from, to を使います。この方法だと、区切り文字も丸ごと取り出すことができます。
set wtext to text from word 1 to word 3 of "I love you very much"
display dialog wtext
結果は「I love you」となります。
(2008.08.06)
参考:
AppleScriptLanguageGuide.pdf
Working with Text