青木日記

<前の日 | この月 | 次の日>

2007-02-06

■ TextEditで文字数を数える (1) AppleScript

簡単なレポートくらいなら TextEdit で書けるなあ。 ……と思って書いてたら文字数が数えられないことに気付く。 なんかないのか?

あった。

http://blogs.dion.ne.jp/fujidana/archives/517367.html

なるほどね、AppleScript というのを使うと 動いているプロセスにちょっかいを出せるんだ。 Mac における COM みたいなもんか。

■ TextEditで文字数を数える (2) RubyCocoa

しかしこの AppleScript って コードの字面が実にかったるいな。 Ruby で書けるとよいのだが。 なんか書けそうだな。 RubyCocoa という単語をなんとなく思い出すんだが、 もしかしてこういうことに使えるのだろうか。

使えそうな気がするな。 NSApplication のあたりが怪しい。 これで TextEdit を操作できるんじゃないだろか。

とりあえずインストールしとこ。 1.9 (YARV前) で動くかなあ。

だめだった。追究するのもめんどいので (というかレポート書かなきゃいかんので) あきらめてバイナリを使う。

rb-appscript というのを一緒に使うと いろいろ楽に書けるようだ。こうか。

~ % cat textedit-wc.rb
require 'appscript'
p Appscript.app('TextEdit').documents[1].characters.get.size
~ % ruby-1.8.2 textedit-wc.rb
80

動いた〜。

ていうか 80 字しか書いてないのに AppleScript 書き始めるのってどうよ。

ん? もしかしてこれって文字数じゃなくてバイト数かな。 いやそんなことはなかった、文字の配列だった。 それはそれでなんか気になるが、とりあえずはこれでいいや。

(05:38)

本日のツッコミ(全2件)
■ hisa (2007-02-06 22:04)

AppleScriptの代わりとしては、rb-appscriptとかぶってますが、RubyOSAというものもあります。実際どう違うのかよく知らないのですが、rubyosaの方は、将来のMac OS Xにのっかっる可能性も高そうだし友人が作ってるし、ということで推しておきます。

RubyCocoaに関しては、SIMBLプラグインとしてアプリにへばりつくという方法で使えるようになりつつあります(開発中)。

RubyOSA - http://rubyosa.rubyforge.org/
SIMBL - http://www.culater.net/software/SIMBL/SIMBL.php

■ 青木 (2007-02-08 03:44)

あ、そうか、RubyCocoa と rb-appscript は別ものなんですね。
このへんは何がなにやらわからないので、勉強してみます。


<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|