2010年3月1日月曜日

たけうちとおるさんの19)検索置換を読む その3

段々むずかしくなってきました。for文です。
function main(findrepAry){
if (app.documents.length == 0){
//documentsと複数形

alert("ドキュメントを開いてください");
return;
}
if (app.selection.length == 0){
//selectionと単数形

alert("オブジェクトを選択してください");
return;
}
var mySele = app.selection;

/*関数内の { と } の中にvarをつけて宣言した変数がローカル変数
ローカル変数とは宣言した関数(ここではmain)で使える変数のこと
app.selection=アプリ(イラレ)の選択したもの

ちょっとまて、このスクリプトはvarから始まってるぞ↓
var findrepAry = new Array(0);
分からんなりに次に進む*/

var selecount = mySele.length;
//アプリの選択したものの部品の数

/*変数の中に変数を入れるので分かりにくい
var selecount = app.selection.length;
と1行にしてもいいよな? 
しかし、改変することを視野に入れれば細かく分けたほうがいいな*/

for(var N = 0 ; N < selecount ;N++){

/*
for ( 変数名=0 ; 変数名< 回数 ; 変数名++)とあるが
for( 初期値 ; 繰り返し条件 ; 繰り返し時の処理)の方が分かりやすい
N = 0は変数が0なのではなく、カウンタの初期値設定
varが使われているが
for( N = 0 ; N < selecount ;N++)
と書いても同じ

注:0 から9 まで10 回繰り返したい場合は N<10
1 から10 までにしたい場合は N<=10
なのだが、現時点ではどんな時に使い分けるのか分からない
今日はここまで
*/

最初に読み解くスクリプトとしてはかなり高度かな?と思ったが、検索置換は入り口でありゴールだよな。スクリプトのほとんどの作業は検索置換のような気がする。ただvarが複数回出現してくると頭が痛くなる。

1 件のコメント:

たけうちとおる さんのコメント...

varは決まりごとですので、あまり気にしなくてもよいと思います。初めてでてきた変数の前につけます。
こうしないとグローバル変数になってしまって、いろいろ不都合があるのです。特にNとかiとかが他の関数とごっちゃになったりします。

ご察しのとおり
var selecount = mySele.length;
for(var N = 0; N < selecount;N++){
も決まり文句です。
選択が10個あればselecountには10入りますが
配列は0スタートなので
0
1
2
3
4
5
6
7
8
9
で10個です。
N < selecount;は9まで繰り返すのでばっちりというわけです。