スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



mirrorMan - xdoc2txt実装ソース抜粋

動作確認の続きです。

まず、
<object id="XDOC2TXT"
classid="clsid:4FD6BD6E-471A-48A6-8C52-5E8391ECBA9F" width=0 height=0></object>
<span id=xdoc2txtSpan></span>
objectタグでXDOC2TXTの参照を作成します。
span要素でテキストボックスを表示/非表示するポイントを作成します。

ボタンクリックかCtrl+Fで呼ばれるモジュールは、
function toggleCmdBtn(i){
if(document.all.filteFnmInBox){
if((!XDOC2TXT.object)||(document.all.xdoc2txtInBox)){
filterFileSpan.innerHTML ="";
xdoc2txtSpan.innerHTML ="";
setTimeout('loadItms(1)',0);
}else
xdoc2txtSpan.innerHTML = "<input type=text id=xdoc2txtInBox size=5 value=xdoc2txt>";
}else
filterFileSpan.innerHTML = "<input type=text id=filteFnmInBox size=5>";
ファイル名のフィルタのテキストボックスのidはfilteFnmInBoxで、xdoc2txtの入力ボックスと合わせ、同じイベントで2段階でのテキストボックスをサイクル表示/非表示させます。function名ですがもうトグルじゃないです。

XDOC2TXTを参照するobject要素のobject属性値がnullかどうかをチェックすことで、ActiveX版のXDOC2TXTがインストールされているかどうかを確認します。または、すでにxdoc2txtのテキストボックスが表示されているかという条件文です。
これがtrueだった場合、両方のテキストボックスを消去します。
falseだった場合、それぞれのテキストボックスのinput要素を作成します。

テキストボックスに入力されたキーのonkeydownイベントで次の処理を行います。
if(document.all.xdoc2txtInBox){
rhtStatsbar.innerText ="";
try{var regx = xdoc2txtInBox.value ? new RegExp(xdoc2txtInBox.value,'mgi') : /./}
catch(e){
xdoc2txtInBox.style.backgroundColor='#d8efff';
return rhtStatsbar.innerText = " "+e.description
}
xdoc2txtInBox.style.backgroundColor="";
}
rhtStatsbarは正規表現句のエラーを表示する領域です。
入力値でRegExpオブジェクトをnewします。エラーの場合、テキストボックスの背景色も薄いブルーにしていますが、XPではエンターキーを押さないと色が変わらず、よくわかりません。

続いて、フォルダオブジェクトのコレクションでそれぞれのファイルをループするときに、
XDOC2TXTのConvertメソッドの登場です。そうです。ファイル毎に呼び出してます。
for(var fc=new Enumerator(erfo.Items()); !fc.atEnd(); fc.moveNext()){
if(regx){ if(!regx.test(XDOC2TXT.Convert(fc.item().Path))) continue}
・・・
なのに速いですね。RegExpのオプションは複数行でデータ全体で大文字小文字区別なし
にしていますが、外す必要もない位速いです。EXE版でファイルI/Oは絶対にしたくありません!
のちのちは、正規表現のマッチ結果を格納して、マウスカーソルを合わせたら検索結果がツールチップに表示されると面白そうです。
スポンサーサイト



comment

Secret

while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。