:note

お品書きリストと文字スタイル割当

http://www2.rocketbbs.com/11/bbs.cgi?id=thats&mode=pickup&no=4196

こんな感じかな? テキスト処理系のスクリプトは苦手

//外部テキストのリストをもとにスタイル割当
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);
}
 
comments powered by Disqus
back to top