DTP駆け込み寺
  1. [3384] AppleScript:全角と半角の区別 旧掲示板 2007/11/26 02:54

[ 返信 ]

AppleScript:全角と半角の区別

AppleScriptにて、
クリップボードに文字列をコピーし、
(例:VolumeA/DIR1/DIR2)
AppleScriptにその文字列を読み取らせ、
半角スラッシュで区切って(delimiter使用)
ボリュームマウント、フォルダオープンまでを行うAppleScriptを作りました。

しかし、あるフォルダではそれが動かないことが判明。

調査したところ、
全角スラッシュの文字が入ったフォルダだと、
全角スラッシュを半角スラッシュと判断してしまうために起こるエラーと判明。

そこで質問です。
全角と半角を区別するようdelimiterで区切って配列に代入する方法を教えてください。

よろしくお願いいたします。 2007/11/26 02:54:59
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

001

質問の答えは知りません。

しかし、この場合offsetなら全角・半角を区別しますから、一般的な文字列の切り出しは出来ます。
実装するにしても、ものの30分かからないでしょう。
楽な方法の捜索は後回しで、とりあえず作った方が早いと思います。

匿名 2007/11/26 09:57:13
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

002

スクリプトの内容がよくわかりませんが、
自分の所では全角・半角のスラッシュは混同されませんし、
マックの階層区切りはコロン「:」で取得されるので
問題ないような気がするのですが。

ダブルラッピング 2007/11/26 13:56:03
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

003

■匿名さん>
返答ありがとうございます。

【offset】は確かに区別されるようですね。
その書き方を調べる途中で、下記HPを発見し、
URL http://bbs.applescript.net/viewtopic.php?id=19520&p=1

considering case
 ・
 ・
end considering

のように書けば区別されることを知り、
無事delimiterの部分を括ったら区別されました!

少しアドバイスの内容とは違う解決方法になってしまいましたが・・・、
ありがとうございました。

■ダブルラッピングさん>
返答ありがとうございます。
おそらくconsideringで括っているんでしょうね?

私の調査不足でした。
ありがとうございました。

 2007/11/26 14:25:22
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

004

解決されたようですが、参考までに。
consideringで括らずともこちらでは問題ありません。
以下のスクリプトを実行して、結果は下の様になります。
(*myfile_a*)
(*myfile/b*)

------------------------------------------------

set myPath_a to "machintoshHD/folder_a/myfile_a"
set myPath_b to "machintoshHD/folder_b/myfile/b"

set def to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
log text item 3 of myPath_a
log text item 3 of myPath_b
set AppleScript's text item delimiters to def

ダブルラッピング 2007/11/26 14:48:48
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; ja-JP-mac; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

005

ダブルラッピングさん、レスありがとうございます。

結局…、consideringで解決したと思いきや、
MacOSが10.3か10.4かで動く動かない等の不具合が発生してしまいました。

試行錯誤の結果、文字列取得の方法の修正と、日本語対応をさせることでFIXしましたので下記に報告します。

*********************************************

文字列取得部分は下記のように記述

set mountPath to (the clipboard) as text

この状態で、スクリプトエディタから実行すると、
全角スラッシュと半角スラッシュを区別して配列に代入している(=OK)。

しかし、この状態でアプリケーション保存し、実行すると全角スラッシュと半角スラッシュを区別しない(NG)。

ここで、下記ページを参照し、

URL http://homepage.mac.com/travellers/blog/C746134881/E1061257673/index.html

1)アプリケーションバンドルで保存
2)ctrl+アプリケーションクリック
3)Contents/Info.plistをオープン
4)<script>Japanese</script>に変更

これで、全角スラッシュと半角スラッシュを区別可能なアプリケーションを作成できました。

色々とありがとうございました。

 2007/12/08 15:40:00
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

[3384] 旧掲示板 (2007/11/26 Mon 02:54)