- 締切済み
AppleScript で、文字を除外して読み込み
repeat with theItem in theItems set noteName to title of item 1 of theItem set convName to noteName set title of item 1 of theItem to "Copy of " & convName end repeat 初心者で、色々と勉強中の者です。 有るスクリプトで、ファイルを触り(itm 1) その元のタイトル(title) から、特定の文字群(例えば A や B )を省いた文字列を取得し(convName) 複製されたファイル(theItem)に対して Copy of を頭につけつつ、適用したい、 という事をやりたいのですが、これの3行目をどう書いたらよいか行き詰まっています。 例としては、 ※もとのファイル(A 0000 B.note)を、(Copy of 0000.note)にしたい という内容になります。 ちなみに、複製などその他のことは上手く行っており、Copy of を貼り付けるのも問題ないのですが、元のファイルネームから特定の文字列を除外して読み込む事だけが出来ておりません。 ご教授宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- harawo
- ベストアンサー率58% (3742/6450)
文字列は、「text」ないし「string」というオブジェクトとして扱います。 ある文字列から、範囲指定して新しい文字列を取り出すには、 set newText to text startPoint through endPoint of oldText という構文を使います。startPoint、endPointは、整数値。「through」は、「thru」と短縮しても可です。 文字列は、読み込みのみで、書き換えできません。この点をお忘れなく。なので、文字列の一部を削除することもできません。 削除前の範囲と、削除後の範囲を取り出して、結合し、新しい文字列を作るという手順を踏むことで、目的を実現することになります。 文字列を検索するには、「offset」を使います。 set oldText to "abcdefghijklmnopqrstuvwxyz" set startPoint to offset of "fg" in oldText set endPoint to offset of "stu" in oldText set newText to text startPoint through endPoint of oldText get newText 「fghijklmnopqrs」という結果になります。
お礼
ご教授ありがとうございました! その後試行錯誤したところ、 search_string replacement_string の組合せで、望み通りの結果が得られました。