http://www2.rocketbbs.com/11/bbs.cgi?id=thats&mode=pickup&no=4196
こんな感じかな? テキスト処理系のスクリプトは苦手だぁ
こんな感じかな? テキスト処理系のスクリプトは苦手だぁ
20100217(Wed)1100ソースを一部訂正(リストにある最後のワードが本文にない場合、全体に文字スタイルをあててしまう、リストに空行がある場合を無視するよう)
//外部テキストのリストをもとにスタイル割当
var doc=app.documents[0];
var cStyle=doc.characterStyles.item("bold");//スタイルはつくっておく
var sel=app.selection[0]; //ストーリー全選択
var fileObj=File.openDialog("choose list");
if(fileObj)fileObj.open ("r");
var list=[];
while(! fileObj.eof){
var itm=fileObj.readln();
if(itm !=""){
list.push(itm);
}
}
var arr=[];
//リストの件数だけループ
for (var ii=0,LL=list.length; ii < LL; ii++ ){
//ストーリー内の該当範囲を配列にいれてく
for (var i=0, L=sel.contents.length; i < L; i++){
var dd=sel.contents.indexOf (list[ii], i);
//該当なしならぬける
if(sel.contents.indexOf (list[ii], i)==-1) break;
arr.push([dd, dd+list[ii].length-1]);
i=dd+list[ii].length;
}
}
//インデックスの範囲にスタイル適用
for(var iii=0, LLL=arr.length; iii < LLL; iii++){
var texRange=sel.parentStory.characters.itemByRange(arr[iii][0], arr[iii][1]);
texRange.applyCharacterStyle (cStyle);
}