
AppleScriptを少しかじっただけで他の言語にうとい素人です。
repeat with i from 1 to 2
set aData(i) to...
end repeat
これでaData1とaData2という変数が作れたり呼び出せたりしたら便利だと思うのですが、
試してみたところできませんでした。
AppleScriptでも、特別な宣言などをすれば可能なのでしょうか?
また、できたらで結構ですが、他の言語ならできる、という情報もあれば教えて下さい。
手抜きせず、リストに格納してやるのが王道ってことでしょうか? ^-^;
No.1ベストアンサー
- 回答日時:
AppleScriptのリストが配列と同じと考えられます。
set item 1 of aData to ....
で使えます。
AppleScriptは結構癖があるので、Rubyなどのスクリプト言語を基本に使い、アプリケーションなどを操作するときにはスクリプト言語からShellを呼び出し、osascript などのコマンドでAppleScriptを使うのが楽なように思います。
この回答への補足
回答ありがとうございます。
すみません。質問に書いているとおり、リストでできることは理解しています。
Rubyでは「変数名に変数を織り交ぜることが可能」ということでしょうか?
No.4
- 回答日時:
No.1,2です
>どちらもベストアンサーにしたいんですが…
回答者にとってはベストアンサーよりも、お礼欄や補足欄で反応していただけいるのが
一番うれしいわけで、
No3でevalについては的確な回答をされていますので、付け加えることもないのですが、evalを使うとプログラムの見通しが悪くなりますので、他の方法がないか考えてみる必要があると思います。
ちょっと別の視点から
AppleScriptの質問で、他の言語を勧めるのも気がひけますが、プログラム言語一般に言えることですが、ある程度完成されてきますと、互換性を重視することから、大きな変更ができないようになってしまいます。
AppleScriptは登場した当初は先進的で、アプリケーションを外部からコントロールする方法として定着してきましたが、いろいろな問題を抱えたまま現在に至っているように感じます。(特に文字列の処理と外部ルーチンの追加についての使いづらさが目立ちます)
これからOSXで使うことを前提としてスクリプト言語を選ぶとなると、Rubyが有力な候補に挙がるのではないかと思います。私自身Rubyを中心に使っていますのでひいき目に見てしまいますが、後はPython, Perlあたりでしょうか。いずれも簡単にshellに命令を渡せますので、osascript命令で多少の使いずらさはありますが、AppleScriptを使うことは可能です。
私もお礼がもらえるのが一番嬉しいですが、ベストアンサーも大好きです(笑
手間をかけて、その上見通しが悪くなるようなら辞めた方が良いですね^-^;
素直にリスト使います。
汎用性のある言語を習得すべきことは頭では分かっているのですが…なかなかその一歩が踏み出せずにいます(汗
少しでも話についていけるようになりたいです。
今後ともよろしくお願いします!
No.3
- 回答日時:
いくつかの言語では「eval」という命令や関数が用意されていて、
eval(文字列)
という感じで使用すると、文字列を命令と解釈して、現在の環境で実行します。
Perlの例:
$t=1;
print $t,"\n" ; # 1と出力
eval('$t=2') ; # ここに $t=2; と書いたのと同等
print $t,"\n" ; # 2と出力
また、変数等を使って、変数名を指定できる仕組みが用意されている言語もあります。
http://php.net/manual/ja/language.variables.vari …
http://perldoc.jp/docs/perl/5.16.1/perlref.pod#S …
いずれの方法も、大変危険な方法であって、これでしかできない、というときの最終手段です。
# 例えば、「ファイルを消去する命令」をevalに渡すと、ファイルが消去されます。
これらを使わなければならないようなプログラムなら、設計から考えなおした方がよいです。
リストや配列、ハッシュテーブル等の機能があるのなら、そちらを使うのが普通でしょう。
AppleScriptにはあまり詳しくないのですが、ざっと眺める限りでは、eval相当のものは無いようです。
参照とかプロパティとかをうまく使えば、sData1でもsData(1)でも同じものをアクセスするように作れそうな気はします。
この回答への補足
お礼の訂正:リンク2つ目がまさしくそれですね(汗
それと、ki073さんだと思ってコメントしてました。すみません。
evalとosascriptの例示、ありがとうございました!
どちらもベストアンサーにしたいんですが…
ランダムに決めるか、敢えて引き分けとして締め切りにするか…
結果は恨みっこなしでお願いしますm(_ _)m
ありがとうございました!
リンク1つ目がまさに私がやりたかったことです。
evalについてもようやく理解しました。
別途、命令文の体をなす「文字列を生成」させておいて、
それをevalで「命令として実行」ということですね。
素人なので前者を察するのに苦労しました^-^;
その方法ならosascriptでも同じようにできますね。
もっと簡単に出来る方法もありそうです。
勉強になりました!
No.2
- 回答日時:
aData1とaData(1)は違った変数ですので、同じに扱える方がおかしいのですが、どういうことをされたいのでしょうか?
変数をスクリプトの中で作るには、Rubyの場合はevalを使えば可能です。
いつでもaData1と配列要素のaData[1]が同じ値を取るようにすることも工夫すれば出来そうな気がしますが、確認していません。
AppleScriptの場合の記事がありますが、内容を理解できていません。
http://blog.dtpwiki.jp/dtp/2009/05/applescript-d …
この回答への補足
恐らく私の質問が悪いせいで伝わっていないようです。
aData1, aData2という変数を手入力で設定せず、
AppleScript自身で、実行時にaData1,aData2という「変数名」を設定させる方法があるか、という質問です。
これでも伝わらなかったらスルーして下さいm(_ _)m
度々ありがとうございます。
私のしたいこととRubyのevalの用途とは違うようですし、参考の記事はレコードからの参照の話ですので、質問とは関係無いようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- 英語 一般のyou, we,theyなどの答え方がわかりません。 2 2022/10/29 15:22
- 英語 セキュリティーの英語的ニュアンス 3 2022/04/08 23:43
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSでDim、Private、Publicの違い
-
プログラムに書かれる"%"記号の...
-
Excel VBAで文字化けする (英語...
-
プログラミング言語、Pythonな...
-
C言語、C+、C++、C#の違い
-
C++における継続行
-
GOTO文がない言語・・・
-
任天堂で使うプログラミング言...
-
C言語から呼び出し可能なXM...
-
COBOLでのNOT = の AND条件
-
TANDEM言語ってあるんですか?
-
プログラムははぜ小文字大文字...
-
【Cか】ノベルゲーム【Jav...
-
プログラムからアイコンファイ...
-
ラダー言語?は難易度的にもっ...
-
C言語とhtmlの違いを どな...
-
UNITY Float型の接尾辞fって
-
Solve()とは、なんですか?
-
パスカルケースの由来。
-
計算速度の速いC言語を教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムからアイコンファイ...
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
C言語とhtmlの違いを どな...
-
COBOLでのNOT = の AND条件
-
vbaとc言語の関連性について
-
C++における継続行
-
COBOLで文字タイプを数字...
-
VBSでDim、Private、Publicの違い
-
Excel VBAで文字化けする (英語...
-
UNITY Float型の接尾辞fって
-
プログラムははぜ小文字大文字...
-
VBScriptで引数を省略したい場合
-
UWSCはどのプログラミング言語?
-
C++ ってなんて読む?
-
VCとVC++
-
TO_CHARで小数点以下がある場合...
-
HTMLとC++で、どんなホームペー...
-
パスカルケースの由来。
-
Excelの開発言語ってなんですか?
おすすめ情報