[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 15:58 / Filesize : 87 KB / Number-of Response : 282
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

AppleScript アップルスクリプト 質問、発表 2



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でやってみたいと思ったら
実現するための情報収集はどうするのかな、と。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<87KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef