1 名前:名称未設定 [2007/12/12(水) 16:04:22 ID:Ar0Uzkma0] 質問、発表どっちでもスレ。 ・前スレ AppleScript アップルスクリプト 質問、発表 pc11.2ch.net/test/read.cgi/mac/1174045850/ ・関連旧スレ 【標準装備】スクリプトエディタ pc9.2ch.net/test/read.cgi/mac/1111760449/ おもろい、めずらしいアップルスクリプト発表会 6 pc7.2ch.net/test/read.cgi/mac/1117979906/ ・参考リンク AppleScript ヘルプ help:///Library/Documentation/Help/AppleScript.help 発表まとめ members.at.infoseek.co.jp/obto/script/script.html MacWiki - AppleScript macwiki.sourceforge.jp/cgi-bin/wiki.cgi?AppleScript AppleScript PARK www.tonbi.jp/AppleScript/ TN2065: do shell script developer.apple.com/jp/technotes/tn2065.html developer.apple.com/technotes/tn2002/tn2065.html
152 名前:名称未設定 mailto:sage [2008/01/20(日) 22:22:04 ID:ReuX4mAI0] うまくいきました。 ありがとうございます。 value of、わすれてました
153 名前:名称未設定 mailto:sage [2008/01/21(月) 01:15:17 ID:7Z0drbOg0] sortの件,自分のスクリプトの書き方が悪いのか,環境が悪いのか わかりませんが,いずれにしてもFinderは使わずOSAX利用にします. OSXが改善されているんであれば,この件はもう問題ないと思いますので.
154 名前:名称未設定 mailto:sage [2008/01/21(月) 02:36:11 ID:JBjSBARS0] おまえ OS9でAppleScript勉強中 だろ 珍しくスクリプトを晒したな、では教えてやる (OS9でAppleScript勉強中でなかったらすまん) >>148 のスクリプトは根本的に間違ってるぞ まず、ハンドラを呼び出しといて返り値を受け取るようになってない 次に、ハンドラに渡した引き数をハンドラ内で上書きして消している そのまた次ぎに、ハンドラから返り値を戻していない 俺んとこはOS9環境じゃないから最終的にちゃんとソートされるかどうかわからんが 修正してからもう一回やってみな、たぶんできるんじゃなか
155 名前:名称未設定 mailto:sage [2008/01/22(火) 01:10:20 ID:HArE3TYz0] 他にもハンドラの指定とか色々抜けててコンパイルすら通らなさげ
156 名前:名称未設定 mailto:sage [2008/01/22(火) 02:45:38 ID:4s1CaZPN0] コンパイルはできるよ、ただ機能してないだけ
157 名前:名称未設定 mailto:sage [2008/01/22(火) 03:57:44 ID:2GbLjtHn0] 機能してないスクリプトを書いた本人です.理解の無さがそのまんま 露呈するカタチになってしまいました.いろいろと指摘して頂いた方, ありがとうございました. ハンドラのこといまだによくわかんないですけど,まあいっか.
158 名前:名称未設定 mailto:sage [2008/01/22(火) 04:03:36 ID:pm2VHoUi0] ハンドラーを理解するのは難しいね
159 名前:名称未設定 mailto:sage [2008/01/22(火) 04:12:49 ID:DGLFhknn0] ハンドラ(この場合サブルーチンか)に渡されるのは「値」。 引数に変数を書いても、その変数の中身の値だけがわたされる。 だから、ハンドラ内で変数をいじくっても、それは呼び出した側にはなんの影響も およぼさない。 set a to 10 my plusone(a) display dialog a to plusone(a) set a to a+1 end こんなにしてもaは10のまま。 ハンドラから返されるのも値。 ハンドラのなかでいちばん最後に使った値がそのまま返される。 明示的には、return ほぎゃほぎゃ の形で返す。 さっきのは set a to 10 set a to my plusone(a) display dialog a to plusone(a) return a + 1 end plusone こうかけばよかった。 以上の話をぶちこわすglobalとかpropertyとかもあるんだけど、それはまたそのうち。
160 名前:名称未設定 mailto:sage [2008/01/22(火) 21:07:32 ID:HArE3TYz0] >>156 my指定するか、scriptで囲ってtellなりofなりで指定するかしないとエラー出なかったっけ? 無視されるだけだっけか 手元に無いからわからん
161 名前:名称未設定 mailto:sage [2008/01/22(火) 22:10:15 ID:4s1CaZPN0] myを使うのは、アプリケーション内での処理から、ハンドラ呼び出すときとかに必要 普通のハンドラ(サブルーチン)はscriptで囲う必要なし そのルーチン自体にpropertyを埋め込んで何度も使いたい場合なんかに使うかな... でも、あんまり使ったことはないな
162 名前:名称未設定 mailto:sage [2008/01/22(火) 23:22:52 ID:HArE3TYz0] ありゃ、勘違いして憶えてたのかな 指摘サンクス
163 名前:名称未設定 mailto:sage [2008/01/23(水) 02:16:53 ID:jJ/hUDlk0] >>159 サブルーチンで処理した結果が,returnで戻ってセットされた変数に入る ということなのかな.でもそれを,>>148 のdropletにどう生かせばいいのか……. on open dropList set dropList to dropHandler(dropList) display dialog dropList as Unicode text end open to dropHandler(dropList) tell application "Finder" sort dropList by name end tell return dropList end dropHandler こうではないんだろうなあ,並び替えられてないし…….
164 名前:名称未設定 mailto:sage [2008/01/23(水) 02:20:46 ID:UgZ9Xfcg0] Leoparedです。お聞きしたいです。Spotlightでスクリプトの中身の検索出来ないのでしょうか? テキスト形式で保存してもヒットしません。昔は出来たような気も(テキストエディタで書いてたのだけだったのかな?)したのですが。 索引作り直してたら(壊れたのかな?と)ねむねむです。やっと終わった。でも作り直してもだめでした。実はARIAを見てただけってのは内緒。 あと、盛り上がっている話題のはこのような書き方でいいのですか? --横でごめんなさい。しかもここで書いて動かしてない。だったら書くなよ。 ...でもせっかく書いたのを消すのも、、、いや、消せよな!!!明日ためそう。ちゃんと全部書いて。 --本当はここに(オープンハンドラの前に)runハンドラを作っておいた方がいいと思う。デバッグの時のために。 on open dropList set dropList to dropHandler(dropList) of me --同じスクリプトの中のをを呼び出す時は一応付けるようにしている of me 解ってないけど。あと返しの受け皿を。 -->>161 さん of me とかの本当の意味をもう少し詳しく教えてほしいです。間違えてつかってた? display dialog dropList as Unicode text --これじゃ見にくいよね、repeeat でまわして item i of dropList & return でlogをとったほうがよいとおもう。 end open to dropHandler(dropList) tell application "Finder" --set dropList to selection --これがいらないっていわれてるやつ。いらないです。 set dropList to sort dropList by name --ソートしたのをセットしなおさないといけないです。 --あ、同じ変数じゃだめ?いけるよね?あれ?これってリスト?オブジェクト? end tell return dropList --値を返してあげましょう end dropHandler
165 名前:164 mailto:sage [2008/01/23(水) 02:39:22 ID:UgZ9Xfcg0] カキコ確認したら>>148 さんが...もっとまえからおられたのでしょうが、148から見てた。 ねむねむついでに。おやすみなさい。 on open dropList set dropList to dropHandler(dropList) --はい、リターンの受け皿です。ハンドラの戻り値は変数にセットするのです。 display dialog dropList as Unicode text end open to dropHandler(dropList) tell application "Finder" --sort dropList by name --ここが間違えています。ソートした受け皿も必要なのです set dropList2 to sort dropList by name --なんかこわいから2をつけました。いや、いらないと思うけど回してないから。 end tell return dropList2 --これでいいです。返して上げたい変数を入れます。2に変えています弱虫です。 end dropHandler
166 名前:名称未設定 mailto:sage [2008/01/23(水) 02:50:08 ID:jJ/hUDlk0] >>164 >>165 眠い中,丁寧な解説ありがとうございました. レスを参考に書き換えて実行したら,見事にできました.めちゃくちゃ嬉しい. on open dropList set dropList to dropHandler(dropList) of me repeat with i in dropList display dialog i as string buttons {"OK"} default button 1 end repeat end open to dropHandler(dropList) tell application "Finder" set dropList to sort dropList by name end tell return dropList end dropHandler
167 名前:名称未設定 mailto:sage [2008/01/23(水) 02:54:34 ID:jJ/hUDlk0] of me は,無くてもよさそうです.レベル1上がったかもしれない.皆さんに感謝です.
168 名前:名称未設定 mailto:sage [2008/01/23(水) 03:38:02 ID:8sW51IY70] ハンドラ of me あるいは my ハンドラは、 tell ナントカの内側で呼び出すときに必要になる。 たとえば、 tell application "Finder" set theList to every file of (choose folder) set dropList to dropHandler(theList) end to dropHandler(dropList) --略 end dropList なんてやるとエラーになる。 呼び出すところを、my dropHandler(theList) あるいはdropHandler(theList) of me としないといけない。 必要ないときに付けても害にはならないので、 わたしは(>>161 とは逆に)、常に付けておく習慣にする派。スクリプトを デバッグしながら、修正したりするときに、myは付けっぱなしにしておいた方が いらないエラーに出会わないので。
169 名前:名称未設定 mailto:sage [2008/01/23(水) 08:25:20 ID:sV0qOwWq0] ハンドラの頭のtoってなんですか。今までonしか見たことがなかったもので。
170 名前:名称未設定 mailto:sage [2008/01/23(水) 11:43:29 ID:L0F7r9lE0] どっちでもいいです。好きな方を使ってください。
171 名前:名称未設定 mailto:sage [2008/01/24(木) 01:31:14 ID:PWw4lLLi0] dialogをwindowにattachして表示していて、 表示するdialogによって後処理を変えたい場合はどうやるのがベターなんだろう? 具体的にはこんな感じ↓ -- on clicked theObject if name of theObject is "btnA" then display dialog "A" attached to window 1 else if name of theObject is "btnB" then display dialog "B" attached to window 1 end if end clicked on dialog ended theObject with reply withReply (* "btnA"を押したらdialog"A"を、"btnB"を押したらdialog"B"を表示する *) (* でもって"A"のOKを押した時と"B"のOKを押した時で違う処理をしたい *) end dialog ended -- ボタンだったらInterface Builderで作成する際に名前付けておけば、 on clickedでやってるみたいに区別できるけど、 dialogに名前をつける方法が全く見当付かないんだよね
172 名前:名称未設定 mailto:sage [2008/01/24(木) 01:31:58 ID:PWw4lLLi0] 今のところの代案は2つあって、まずボタンで区別する方法 -- on clicked theObject if name of theObject is "btnA" then display dialog "A" buttons {"Cancel", "OK"} attached to window 1 else if name of theObject is "btnB" then display dialog "B" buttons {" Cancel ", " OK "} attached to window 1 end if end clicked on dialog ended theObject with reply withReply if button returned of withReply is "OK" then (* AのOKの後処理 *) else if button returned of withReply is " OK " then (* BのOKの後処理 *) end if end dialog ended -- 簡単だけど全部のボタンを個別に考える事になるので、 数が増えてくるともの凄くわかりづらい感じがする
173 名前:名称未設定 mailto:sage [2008/01/24(木) 01:32:24 ID:PWw4lLLi0] もう一つ globalな状態変数を作って、display実行直前にアップデートする方法 -- property lastDialog : "" on clicked theObject if name of theObject is "btnA" then set lastDialog to "A" display dialog "A" attached to window 1 else if name of theObject is "btnB" then set lastDialog to "B" display dialog "B" attached to window 1 end if end clicked on dialog ended theObject with reply withReply if lastDialog is "A" then (* Aの後処理 *) else if lastDialog is "B" then (* Bの後処理 *) end if set lastDialog to "" end dialog ended -- ダイアログ別に書けるのでわかり易くはあるんだけど、 いまいちスマートな気がしない もっといい方法があったらご指南下さいませ
174 名前:名称未設定 mailto:sage [2008/01/24(木) 02:25:26 ID:UgLPzr1s0] とりあえず、いわゆるAppleScript Studioのはなしをするときは、その旨一言断ってもらえると ありがたい。Xcode入れてない人にとってはなんのこっっちゃわからんから。 で、なんかわかりませんけど、単に行き詰まってるだけでは?「ダイアログのOKを押したとき…」 っていうのを頭から消してみたら? ダイアログはダイアログであって、それをごちゃごちゃ拡張するぐらいなら、Scriptオブジェクト でも使って正しく一から機能を定義すべき。
175 名前:名称未設定 mailto:sage [2008/01/24(木) 02:47:45 ID:PWw4lLLi0] >>174 別に全員が全員のレスを読む義務なんて無いし、わからん人には答えも出せないだろうから、 あまり迷惑はかからないような気がしたんだ ごめんなさい で、scriptで分けるのはなるほど合点 ファイル自体分けるのも悪くなさそうですな
176 名前:名称未設定 mailto:sage [2008/01/24(木) 07:39:45 ID:gSZwdT8s0] AS Studioはほぼ分からないけれど Cocoaなら、Dialogを表示するためのメソッドを別に起こし、Dialog から戻ってきたときに実行させるメソッドを指定しておく。 メソッド1:ダイアログA表示 メソッド2:ダイアログA後処理 メソッド3:ダイアログB表示 メソッド4:ダイアログB後処理 ASでも基本的な考え方は同じようでいいのでは。 要は、一つのハンドラで処理しようと考えずに、個々に作るって方法。
177 名前:名称未設定 mailto:sage [2008/01/28(月) 04:45:44 ID:Lv8zmNMU0] 文字列の先頭または末尾にあるスペースや改行を削除したいと考えています。 character of theStings で一文字ずつチェックすればいいのはわかるのですが もっと簡単で速い方法がありそうな気がしています。 Unixのコマンドとかに何かないでしょうか?
178 名前:名称未設定 mailto:sage [2008/01/28(月) 09:00:13 ID:wC267zY50] >>177 デリミタにして割って戻せば? 但し、先頭と末尾、スペースと改行ってきまってんなら、データによっちゃあ一文字づつ判定した方が早いかもね。 ASの配列の扱いは遅いから。 URL、pathを割るだけならデリミタ使った方が楽にかけるけど。
179 名前:名称未設定 mailto:sage [2008/01/28(月) 09:21:13 ID:aEMLetUe0] sed
180 名前:名称未設定 mailto:sage [2008/01/28(月) 11:00:46 ID:wWgbdatJP] >>177 php の trim 使えば?
181 名前:名称未設定 [2008/01/28(月) 19:18:20 ID:Cc1krv5x0] >>177 処理するデータ量によると思うけど、多くの場合は、AppleScript で閉じた方が速度は速いと思う。OSAX 経由による新しいプロセスの起動は馬鹿にならないコストが発生する。書くのはめんどくさいかもしれないけど、使い回せるようにしておけば OK。 また、do shell script では、引数としてデータを渡すか、一時ファイルを経由するか以外にデータを渡す方法は無い。普通は、簡便に引数としてデータを渡すことを想定していると思う。でも、それは避けるべき。なぜなら、引数に与えられるデータは数kB 程度の制限があるから。
182 名前:名称未設定 mailto:sage [2008/01/28(月) 21:11:12 ID:6Mnl2a+20] そら制限あるに決まってるけど、たまにはドキュメント見直しといたら?
183 名前:名称未設定 mailto:sage [2008/01/28(月) 21:57:15 ID:t1dhc6kE0] OS9ならTanaka's osaxで簡単にスペースや改行削除、文字列置換出来るんだけど… 普通、こういうのってテキストエディタ使わない? アプリをAppleScriptで操作するってんなら話もわかるけど。
184 名前:名称未設定 mailto:sage [2008/01/29(火) 00:00:05 ID:SqnO2VLc0] こんなソフトありませんかスレで質問したものです。 そこでいただいたスクリプトに追加してドロップレットの形にもってこれました。 先ほどはありがとうございました。 なお、エラー処理は入れていません。 代わりにInfo.plist側でfolderのみドロップ可能の制限を付けてます。 on open of target_files tell application "Finder" repeat with theFolder in target_files set theNumber to count items of folder theFolder set name of theFolder to (name of theFolder) & " (" & theNumber & ")" end repeat end tell end open
185 名前:名称未設定 mailto:sage [2008/01/29(火) 00:15:51 ID:8rKQZbo00] >>184 こちらこそ勉強になりました
186 名前:177 mailto:sage [2008/01/29(火) 01:05:53 ID:y2zrfE5B0] ありがとうございます。 そうなんですよtrimがやりたいんです。 1行の文字列を想定しているので、do shell scriptで渡せる範囲で十分かな とは思ったんですが(って、制限があるの知りませんでしたが)。 sed で一発なのかな? 地道に削った方がいいのかな。
187 名前:177 mailto:sage [2008/01/29(火) 02:06:24 ID:JvyyVCGs0] あれ。書き込まれていない…ってことはどっかに誤爆したか。 ありがとうございました。 sedも捨てがたい気もしたんですが、一応AppleScriptで書いてみました。 お礼がてら発表。 将来必要な人はご自由にお使いください。 to trimSting(theStr) set blankcha to {" ", tab, return, ASCII character 10} repeat with l from 1 to length of theStr if character l of theStr is not in blankcha then exit repeat end repeat if l is length of theStr then -- 空白文字しかない return "" else repeat with r from length of theStr to l by -1 if character r of theStr is not in blankcha then exit repeat end repeat return text from l to r of theStr end if end trimSting --- set testStr to " ねこ cat " & return & " " trimSting(testStr)
188 名前:177 mailto:sage [2008/01/29(火) 02:11:25 ID:JvyyVCGs0] 普通のフォントだと小文字のlが見づらかったですね、失敗。 左と右でlとrだったんですが。
189 名前:名称未設定 mailto:sage [2008/01/29(火) 08:16:45 ID:KVrSUKlu0] 乙
190 名前:177 mailto:sage [2008/01/31(木) 16:50:50 ID:hk4Y87xF0] >>187 バグ見っけ。 " A" みたいな、最後の1文字だけ空白でないとき、結果が""になります。 関数の最初(repeatの前)を以下に修正 to trimSting(theStr) set keeper to ASCII character 0 set blankcha to {" ", tab, return, ASCII character 10, keeper} set theStr to theStr & keeper repeat with l from 1 to length of theStr (以下同じ)
191 名前:名称未設定 [2008/02/02(土) 14:35:22 ID:jL2sCx8L0] ここでいいのかどうかわかりませんが。 Word 2004でマクロを使って文字置換をしていたのに、Word 2008ではマクロが使えない(作れない)ので困っています。 カタカナをひらがなに一括変換したり、漢数字をアラビア数字にまとめて直したりするには、Applescriptを使うしかないのでしょうか。参考になりそうなサイトでもあれば教えてください。
192 名前:名称未設定 mailto:sage [2008/02/02(土) 15:21:35 ID:FXyhVtyz0] 2004と2008両方使えば? VBA使えるならAppleScriptはさして難しくないと思うが、 参考になりそうなサイトはググって出てきたサイトです。
193 名前:名称未設定 mailto:sage [2008/02/02(土) 15:26:19 ID:1y5wM5OO0] つwww.microsoft.com/mac/developers/default.mspx?CTT=PageView&clr=99-21-0&target=82ecc295-efb1-460d-b51d-15f8f9f08eb31033&srcid=de629b6c-3e96-4511-b2c3-17b76e3bf5c41033&ep=7
194 名前:名称未設定 mailto:sage [2008/02/03(日) 01:19:05 ID:XiMWeNMG0] 今まで使えていたスクリプトが使えなくなりました。 どなたか理由が分かる方いれば教えてください。 内容は最近使った項目を消去するスクリプトです。 ずいぶん前にこんなアプリスレで作ってもらった物なので 自分では原因が分からず、、、です tell application "Finder" activate end tell tell application "System Events" click menu item "メニューを消去" of menu "最近使った項目" of menu item "最近使った項目" of menu "Apple" of menu bar 1 of process "Finder" end tell
195 名前:名称未設定 mailto:sage [2008/02/03(日) 01:34:51 ID:/wDJiqO+0] >>194 使えなくなったってのはどう使えなくなったのか? きっかけが何かあるんじゃない? OS10.5で実行したらちゃんと最近使った項目は全削除出来たよ。
196 名前:名称未設定 mailto:sage [2008/02/03(日) 02:31:16 ID:XiMWeNMG0] >>195 説明足らずでした OS10.4.10で、こんなエラーが表示されます 「NSReceiverEvaluationScriptError:4」 特に何かアプリを入れたとか、何かを削除したとかは無いと思います たぶん、、 調べてみるとこんなページがありました veadardiary.blog29.fc2.com/blog-entry-543.html 当該のアプリは入っていないのですが、他のアプリが悪さしてるんでしょうか?
197 名前:名称未設定 mailto:sage [2008/02/03(日) 03:28:05 ID:wixDB7Lv0] まさかとは思うが、システム環境設定のユニバーサルアクセスのところの “補助装置にアクセスできるようにする”のチェックがはずれていたりしないか?
198 名前:名称未設定 mailto:sage [2008/02/03(日) 12:17:29 ID:mT7m/8wW0] >>197 チェックしてみたら、まさしくそれでした 助かりました ありがとうございます
199 名前:名称未設定 mailto:sage [2008/02/05(火) 21:28:00 ID:bkb6G5hd0] AppleScriptから自分の環境のグローバルIPを知るのはどうすればいいのですか。 Mac OS X 10.4.11です。
200 名前:名称未設定 mailto:sage [2008/02/05(火) 22:39:17 ID:iWlRhzBT0] これかな? IPv4 address of (system info)
201 名前:名称未設定 mailto:sage [2008/02/06(水) 02:24:34 ID:MF/4kPwX0] グローバルIPとは限らんけど、その辺は意味わかってるのかな>>199
202 名前:名称未設定 mailto:sage [2008/02/06(水) 02:59:20 ID:1bh4jcpH0] >>200 残念ながらローカルIPでした。 >>201 意味わかってないかも。 WebにアクセスしたときにREMOTE_ADDRでみられるあれを知りたいのです。
203 名前:名称未設定 mailto:sage [2008/02/06(水) 03:05:39 ID:MF/4kPwX0] >>202 ネットワークアダプタが1個だとIPは1つしかないぞ それがローカルかグローバルかは環境による 両方持ってることなんてあり得ない 多分ネットにはルータ経由で繋いでるんでしょ だとすると表示されてるリモートアドレスはプロバイダがルータに割り当てたアドレスだから、 AppleScriptでは取り様が無いんじゃないかなぁ ルータの説明書でも見てくださいな
204 名前:名称未設定 mailto:sage [2008/02/06(水) 03:24:30 ID:r9gNuwZ/0] >>202 do shell script "curl www.ip-adress.com/ | perl -ne 'print $1 if /My IP: ([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/'"
205 名前:名称未設定 mailto:sage [2008/02/06(水) 03:50:46 ID:MF/4kPwX0] >>204 内側から取りにくけりゃ外側から取ればいいとこまでは考えていたが、 こんな方法があったとは… curlもip-adress.comも知らなかったわ
206 名前:名称未設定 mailto:sage [2008/02/06(水) 04:41:34 ID:OFpD2CYS0] 僕はルータの設定ページから スクレイピングってのをやったことあるぞ。
207 名前:名称未設定 mailto:sage [2008/02/06(水) 04:57:50 ID:1bh4jcpH0] ありがとうございました。そういう方法しかないんですね。 いわれてみるとたしかにそんな気がします。 #!/usr/local/bin/perl4 print "Content-type: text/html¥n¥n"; print "<HTML>¥n"; print "<HEAD><TITLE>address</TITLE></HEAD>¥n"; print "<BODY>¥n"; print $ENV{'REMOTE_ADDR'}; print "¥n</BODY>¥n"; print "</HTML>¥n"; こんなCGIをつくっておいて do shell script "curl -s '" & checkURL & "' | grep '¥¥([0-9]¥¥{1,3¥¥}¥¥.¥¥)¥¥{3¥¥}'" で、拾うことにしました。 grepがエスケープだらけでわけわかんね
208 名前:名称未設定 mailto:sage [2008/02/07(木) 06:06:02 ID:jDyPrUGu0] うちのはグローバルIPなので確認のしようがないんだけど dotted decimal form of host of (("http://" & (host name of (system info))) as URL) これじゃだめだよね...きっと
209 名前:208 mailto:sage [2008/02/07(木) 09:39:35 ID:jDyPrUGu0] いろいろ調べているうちに、ひょっとしていけてるんじゃないかという気がしてきた。
210 名前:208 mailto:sage [2008/02/07(木) 11:43:56 ID:jDyPrUGu0] すいません、だめだったようです。
211 名前:名称未設定 mailto:sage [2008/02/07(木) 19:11:58 ID:sn+SQ1ai0] >>207 CGIはHTMLつくらなくてもいいんじゃないか?
212 名前:名称未設定 mailto:sage [2008/02/08(金) 11:35:09 ID:h4NoFh0Y0] 文字列の置き換えって、結局sedでやった方が楽のような。 ファイル名の置き換えをしようとしているんだけど。 >【鏡音リン初音ミク】夢みることり【オリジナル】‐ニコニコ動画(RC2).flv <【鏡音リン初音ミク】夢みることり【オリジナル】.flv こんな感じでやれそう。 tell application "Finder" set theName to name of this_item set theNewName to my RemoveIt(my GetNFC(theName)) (* set name of this_item to theNewName *) end tell to GetNFC(theItem) set theScript to ("echo " & (quoted form of theItem) & "| iconv -f UTF-8-MAC -t UTF-8") return (do shell script theScript) end GetNFC to RemoveIt(theItem) set theScript to ("echo " & (quoted form of theItem) & "| sed -e 's/‐ニコニコ動画(RC2)//' -e 's/ニコニコ動画(RC2)‐//' ") return (do shell script theScript) end RemoveIt
213 名前:名称未設定 mailto:sage [2008/02/08(金) 11:35:49 ID:h4NoFh0Y0] これよりは楽だよね? to RemoveIt(theItem) set theCurrent to AppleScript's text item delimiters set AppleScript's text item delimiters to ("‐" & "ニコニコ動画(RC2)") set newItem to (text items of theItem) set AppleScript's text item delimiters to theCurrent set newItem to newItem as Unicode text return newItem endRemoveIt もっと楽な方法あるかな。
214 名前:名称未設定 mailto:sage [2008/02/08(金) 12:04:12 ID:8BLe8zJK0] ちょっとした置換はsedのほうが書くのは楽だけど、 大量に処理するときはdelimitersで書いたほうが処理速度がはるかに速い。
215 名前:名称未設定 mailto:sage [2008/02/08(金) 22:26:43 ID:lh4IbSJr0] >>214 >大量に処理するときはdelimitersで書いたほうが処理速度がはるかに速い。 こういうのは「ノウハウ」という
216 名前:名称未設定 mailto:sage [2008/02/08(金) 23:10:24 ID:YaBd+HUr0] Mac OS X 付属の Oxford American Dictionary が言うところの "practical knowledge or skill" ってやつですね
217 名前:名称未設定 mailto:sage [2008/02/09(土) 00:20:03 ID:ZJALACSM0] delimiterで区切ったときの項目数が多すぎるとクラッシュする。 テキストサーチでやると若干遅いが潜在的なバグを回避できる。 これもノウハウ。
218 名前:名称未設定 mailto:sage [2008/02/09(土) 01:20:34 ID:8c3p0UXM0] スクリプティング機能追加に,表現形式という名のフォルダを置いておくと, AppleScriptの動作が気持ち速くなる for OS9.これもノウハウ.なんちって.
219 名前:名称未設定 mailto:sage [2008/02/15(金) 23:01:50 ID:VcvI2WhG0] 初心者質問スレから来ました。 applescriptを使って環境設定をワンクリックで設定変更できるか教えて欲しい。 具体的にはディスプレイの回転の項目を設定したいんだが、すいませんが回答頼む
220 名前:名称未設定 mailto:sage [2008/02/15(金) 23:19:48 ID:gLV++OtN0] tell applic(省略されました。続きを読むには言葉遣いを直すか中学校を卒業してください。
221 名前:名称未設定 mailto:sage [2008/02/15(金) 23:24:01 ID:VcvI2WhG0] AppleScriptを使用して、環境設定→ディスプレイの中の回転の項目を一発で 設定できる方法を探しています。どなたかご存じの方がおられましたらご教授願います。 >>220 確かに変だし中途半端だよね。すいませんでした。
222 名前:名称未設定 mailto:sage [2008/02/15(金) 23:41:19 ID:gLV++OtN0] >>221 ttp://www.macosxhints.com/article.php?story=20071003040156502 ttp://www.gizmometer.com/software/freeware/RotateDisplayScripts.zip
223 名前:名称未設定 mailto:sage [2008/02/15(金) 23:55:59 ID:VcvI2WhG0] >>222 ありがとうございました。 tell applicationでググってそれっぽいサイトみつけて途中までやったんだけど すぐに挫折して泣きそうだった。本当に感謝してます
224 名前:名称未設定 mailto:sage [2008/02/24(日) 18:40:42 ID:ws+hBWV50] 保守ついでに. OS9からOSXへの環境移行を始めているところなんですが,基本的なところで 迷ってます.TigerではないLeopardのAppleScriptって,イケてます?
225 名前:名称未設定 mailto:sage [2008/02/24(日) 20:04:58 ID:oEGBiLxe0] >>224 do shell script が使えることがかなりイケてる!
226 名前:名称未設定 mailto:sage [2008/02/24(日) 22:23:17 ID:ws+hBWV50] >>225 それは,Tigerでも使えるような…….やっぱり,Leopardにしておきます.
227 名前:名称未設定 mailto:sage [2008/02/24(日) 23:07:06 ID:g63r+uIp0] >>224 文字コードがようやくUnicodeになったのが個人的にはイケてるな
228 名前:名称未設定 mailto:sage [2008/02/24(日) 23:47:18 ID:ws+hBWV50] >>227 文字の扱いが楽になったっていうことですよね.それはいいかも.
229 名前:名称未設定 mailto:sage [2008/02/24(日) 23:56:39 ID:w0z0aOsN0] ようやくバグの一つが解決したからといって それで楽になったと言えるのかどうかorz
230 名前:名称未設定 mailto:sage [2008/02/25(月) 00:10:08 ID:ZjnJnKMr0] >>229 本格的な開発をするわけでないので,多少のことなら目を つむってって感じなのだけど.肩を落とすほど致命的なバグ?
231 名前:名称未設定 mailto:sage [2008/02/25(月) 02:02:53 ID:4eCpQ4Pi0] ttp://www.apple.com/jp/macosx/features/300.html#applescript この辺
232 名前:名称未設定 mailto:sage [2008/02/25(月) 05:32:03 ID:0xO5hGXC0] 10.5.2でもlengthがNFD:NormalizationForm Dに未対応。 困ってるひと他にもいたらフィードバックしてくれ。
233 名前:名称未設定 mailto:sage [2008/02/25(月) 06:05:07 ID:w92nhx6K0] どうせ聞き入れられないに一票w
234 名前:名称未設定 mailto:sage [2008/02/25(月) 09:40:42 ID:yH7aXyxU0] >>232 set nfd to <<data utxt304B3099304D3099304F3099>> as Unicode text length of nfd -- 3 on OSX 10.5.2 これじゃいかんの?
235 名前:名称未設定 mailto:sage [2008/02/26(火) 00:00:00 ID:fORONKKs0] >>231 どの辺にそれが書いてあるのかわからないけど,レパにしちゃいます. どっち使っても不具合があるというなら,新しい方にしようということで. >>232 日本ユーザーからのフィードバックは少ないから,要望は常に後回しになってる みたいなこと,どこかのブログで読んだことあります.同じこと何度もしつこく フィードバックしないとダメみたいですね.
236 名前:名称未設定 mailto:sage [2008/02/28(木) 01:27:06 ID:G1C0CAJl0] OSX10.5から文字列処理が全部Unicode化したのは良いんだけど、文字列比較は sorting localeによって動作が違うね。 "た" is "タ" sorting localeが日本語だとtrueが返るけど、それ以外だとfalseが返る。
237 名前:名称未設定 mailto:sage [2008/02/28(木) 03:36:09 ID:lEqImwua0] true が返るのか・・・
238 名前:名称未設定 mailto:sage [2008/02/28(木) 04:01:43 ID:a+IF9Sh30] AppleScriptって使えたらすごく便利だとは思うが アプリケーションごとにどんな命令があるのかとかよく分からなくて 結局使えないって印象。 ここの人たちはどうやって勉強してるの?
239 名前:名称未設定 mailto:sage [2008/02/28(木) 07:04:03 ID:jD7kJlja0] おいらにとってはshellscriptの方が まさにそんな印象なんだが…
240 名前:名称未設定 mailto:sage [2008/02/28(木) 13:28:29 ID:hSWm1N4N0] アップルストアとかで,講習会とかやってくれたらいいのにねー。有料でも行きたい。
241 名前:名称未設定 mailto:sage [2008/02/28(木) 14:59:25 ID:sn/A/kuB0] >>238 >ここの人たちはどうやって勉強してるの? オレも知りたい、ちゅうかやっぱり英語が堪能でないとダメ? >>240 だね。
242 名前:名称未設定 mailto:sage [2008/02/28(木) 15:39:33 ID:LAId1muE0] アプリケーションの用語説明を開いて適当に試してみるしかないんじゃない?
243 名前:名称未設定 mailto:sage [2008/02/28(木) 19:17:12 ID:Ec6shymB0] 辞書をみて文法に当てはめるだけだよな。
244 名前:名称未設定 mailto:sage [2008/02/28(木) 20:11:00 ID:n5t/c3qw0] ターミナルとAppleScriptはどう違うの?
245 名前:名称未設定 mailto:sage [2008/02/28(木) 21:00:54 ID:36ItuIwQ0] 質問がおおざっぱすぎる。テレビとラジオは違うものです。 逆にどういう点を同じ、あるいは似ていると思うのかを言うと回答が返ってきやすいだろね。
246 名前:名称未設定 mailto:sage [2008/02/28(木) 21:10:34 ID:lEqImwua0] このスレは優しい人が多いなあ
247 名前:名称未設定 mailto:sage [2008/02/29(金) 00:37:02 ID:xwnBOCeK0] >>238 本やサイトを最初から読んで……というやり方だと,挫折しやすいかも. >>241 英語堪能じゃない自分でも,ちょっとしたもの作ってます.慣れです慣れ. と,初心者の自分が偉そうに書いてみました.
248 名前:名称未設定 mailto:sage [2008/02/29(金) 00:54:43 ID:LmoyoSs00] まだ日が浅くてUI Elements主体でやってる俺だが、 適当にtellりつつpropertiesやらUI Elementsやらactionsやら叩いてるだけで、 それなりに何とかなってるな
249 名前:名称未設定 mailto:sage [2008/02/29(金) 05:21:29 ID:735ElfWC0] GUI Scriptingはこれ使うと楽だよ。それなりの値段だけど。 prefabsoftware.com/uibrowser/ 特定のGUI部品までのパスが一発で取得できる。 JavaScriptやる人ならFirebugみたいって言うと分かるかな。 ま、ちょっと違うけど。 あとScript Debuggerというのも超絶便利。高いけど。 アプリケーションのオブジェクトモデルやプロパティが丸見え。 現在の変数の値とか丸見え。 www.latenightsw.com/sd4/ どっちも初心者にこそ使ってもらいたい。 ブレークポイント設定して、そこからステップ実行、変数の中身の 遷移を観察するという手段を知ると、いろんな疑問が氷解すると思うよ。 「高いから自分にはもったいない」じゃなくて、その逆ね。 この二つがあると無いとではAppleScriptの世界は180度違うといえる。
250 名前:名称未設定 mailto:sage [2008/02/29(金) 12:28:49 ID:MqA3O8Rr0] OS9でコンパイルされたTipをOSXで使えるようになりませんか。 ソースはありません。
251 名前:名称未設定 mailto:sage [2008/02/29(金) 15:42:49 ID:anwHyA/U0] >>249 お金がなくて買えないけど すごく良さそうですね こんな方法もあるんだなー
252 名前:名称未設定 mailto:sage [2008/02/29(金) 15:48:51 ID:mZKfY1Dh0] 例えばOSを再インストールしたとき、 システム環境設定やら Finder環境設定, Finder表示オプションやらを いちいちいつもの設定にしてやるんだけれど そういうのをAppleScriptでやってもらえないかと思ったとき どうやって調べて実装したら良いの? ~/Libraryをコピーする、とか OSインストール後に初期設定だけ済ませた状態の HDDのディスクイメージを取っておいてDiskUtilityから復元、とか そういうので対応可能かもしれないけれど AppleScriptでやってみたいと思ったら 実現するための情報収集はどうするのかな、と。