ホーム > HTMLに役立つヒント> ガラクタAppleScript
AppleScriptのガラクタ入れ。大したものはないので気にしないように。んで、このページ、「HTMLに役立つ」わけではないので、そのうち引っ越しする予定です。さて、どこに引っ越すか…。
このページでは、いちおう単独のスクリプトを紹介。メモ・覚え書き・ルーチンなどはこちら。
Illustratorで地図を作りなさいと。ウ〜ム。問題なのは道路名、建物名、公園、目標物、駅名、etcを張り込まなくてはいけないこと。
1行1データのテキストをもらえるのはいいんですが、何しろ1地図あたり70個とか100個とか貼り込む文字列があるんですね。1行ずつコピーしてイラストレーターにペーストしていくだけで腱鞘炎になりますって。
で、クリップボードの中味を、1行ずつ切り出してイラストレーターに貼り込んでいくスクリプトを作りました。調べてみましたが、類似のスクリプトはないみたいです。皆さん、どうやって大量のテキストデータを貼り込んでいるんだろう?
アップルスクリプトを使うので、イラストレーター9以上でなくてはいけません(10では未確認)。9.0に付属の「ScriptingSupport」をIllustratorの「プラグイン」フォルダにいれておいてください。こうしないとIllustratorはアップルスクリプト対応になりません(ちなみに9.0では動きません。9.02にアップしてください)。
使い方はこんな風
(1)最初にJeditとかSimpleTextとか、なんでもいいのでテキストを開いてセレクトオール、コピーして、クリップボードにリスト(文字列データ)を入れます。
●文字列データの例 1行1データで作成
千駄ヶ谷駅前(交)
モスバーガー
東京体育館前(交)
鳩森八幡前(交)
・
・
・(2)その後このスクリプトを実行します。張り込みが始まります。エラー処理もしていないので動かなかったらごめん。
あ、貼り込むときにクリップボードを利用しているので、最初にクリップボードに取りこんだデータはクリップボード上からなくなりますのでご注意。
うちの環境(G3/400MHz)だと70行を15秒程度で貼り込んでくれます。ラクチンラクチン。同じ位置にペーストするので、終わったら適当に「整列」させるとよいです。
|
--Adobe Illustrator9に付属の「Scripting Support」が必要です。 set allTxt to (the clipboard) as text ---クリップボードの中身を取得 tell application "Adobe Illustrator 9.0.2" |
さて、実はくだんの地図、Illustrator8で作るようにいわれているのである。しょうがないので9.02でテキストを貼り込んだ後、8.0に移して使っているのであった。とほほ。
●ダウンロードはこちら「Illustrator文字取り込み」 利用・改造・改造品の再配布などご自由にどうぞ。
デリミタをCRからtabに変更すればタブ区切りテキストにも対応できるはず。
最初にクリップボードに取りこんだデータがなくなるのはいやだという方は、最後にallTxtをCRでつなぎ直してクリップボードに入れ直すといいでしょう。
また、本来は「make new text art items」を使ってテキストを貼り込むべきなんでしょう。が、どうもこの命令、使い方がイマイチよくわかんなかったんです。誰か作り直してって感じです。
AppleScriptやMacPerlで困るのが、パスの取得。UNIXなんかでは「/usr/local/bin/perl」なんて書き方でディスク内のファイル/ディレクトリの位置を表します。これがパスです。
で、AppleScriptやMacPerlなどでも、このパスを調べなくてはいけない場面があります。MACの場合、区切り文字は「:」になりますので、「MacintoshHD:Desktop Folder:スクリプト関係」なんて感じになります。
このスクリプトは、ファイルやディレクトリをドラッグ&ドロップすると、そのファイルのパスを表示し、「OK」ボタンを押すとクリップボードに取り込む、というものです。複数のドラッグ&ドロップに対応していますが、クリップボードに取り込まれるのは最後に「OK」したパスだけです。
| --ver.0.2 2002/9/9 --ver.0.1 2002/5/29 on open dropLIst repeatwith thisItem in dropLIst --リストがなくなるまで処理を繰り返す display dialog (thisItem as string) & return & return& "OKでクリップボードにコピー。" set the clipboard to thisItem as string endrepeat end open |
ドロップアプリとして使うため、「アプリケーション」として保存して使ってください。
●ダウンロードはこちら「パス取得」 利用・改造・改造品の再配布などご自由にどうぞ。
AppleScriptで改行コードだの何だのを指定する場合、「ASCIIcharacter(xx)」なんて書かなくちゃいけないことがある。いちいちコード表を調べるのが面倒だったので、文字を入力するとコード番号を返してくれるツールを作った。
|
display dialog "文字を入力して。ASCII(10進数)を返すよ。" & return ツ setasciiMojito ASCII number orgMoji display dialog "「" & orgMoji &"」のASCIIは次の通り。 OKでクリップボードにコピー。" & return & "ASCII character ("& asciiMoji & ツ settoTextto "ASCII character (" & asciiMoji & ")" |
16進数と10進数を相互に変換するツール。これは僕の作ではありません。出典は「http://www.tonbi.jp/AppleScript/tips/Data/16.html」です。ルーチンはそのまんま使わせていただきました。インターフェースをつけただけです。
|
settmpto (display dialog "" defaultanswer "" buttons {"16進数へ", "10進数へ", "キャンセル"}) if button returned oftmp = "10進数へ" then onhex2dec(theHEX) ondec2hex(theDEC) |
ホーム >HTMLに役立つヒント> ガラクタAppleScript