告知欄です
1- レス

旧雑記サルベージ


[109]管理人 ★:06/09/06 17:47 ID:???
2006年03月03日
■fenrir風の奴の改良
046.zip(lukewarm.s101.xrea
・Migemo使用時にスキップマッチングを利用できるようにした
Migemoには「改行やスペースの連続」にマッチする正規表現を指定することで改行をまたいだ検索が行われる正規表現を生成するという機能がある。
ここに「[^\\]*」などと指定すると、キーワード中の任意の部分を省略できるスキップマッチングが実現できる。
「ahk」で「AutoHotkey」にマッチしたりするようになる。
検索結果数が増えるため、多少遅くなっているような気がする。

・スキャンデータのリムーバブルドライブ対応
USBメモリなどのリムーバブルドライブや、CD-ROMなどの光学メディアなど、ドライブ文字が変わったりドライブに挿入されているメディアが変わったりする場合に対応できるようにした。
ドライブ文字の代わりにメディアのシリアルナンバーを保存し、実行時に当該メディアを検出してパスを生成する。

・固定ドライブとRAMディスク以外は存在しないファイルを自動削除しないように

・Migemoの辞書の問題のある項目を削除するスクリプトを同梱
面倒なんで正規表現オペレーター文字を含んでいる単語を片っ端から削除することに。
9割方顔文字などのゴミデータなので問題ないだろう。
ついでに、無駄に長い単語も削除するようにした。
「\\」で全角文字を誤検出するので、BREGEXP.DLLで検査するようにした。

・読み込み専用のサブインデックスファイルを指定する機能を追加
LAN上のフォルダなどをインデックス化しておいて、複数のPCから参照したりできるようにした。

・スキャン時に対象フォルダの古いインデックスを削除するようにした

・/scanallコマンドを実装し、scan.txtの仕様を変更した
フォルダごとに個別に正規表現フィルタなどを設定できるようにした。
ついでに、スキャンを行う最低間隔を指定する機能も付けてみた。

・検索を若干高速化
一時リストのメモリをVarSetCapacityであらかじめ確保するようにしたら高速化された気がする。

・フォルダ展開時の駄目文字問題を修正
なんかA_LoopFileNameは自前でパスを区切っているらしく、2バイト目が「\」の全角文字に誤反応しやがるので、スクリプト側で親ディレクトリパスの長さ分削除してファイル名部分を切り出すようにした。

・その他色々修正


色々と修正しようとスクリプトを弄っていたら、GUIウィンドウを表示した直後にメモリアクセス違反で不正終了するようになってしまった。
追加した行を削ると問題なくなり、別の場所に別のコードを追加しても駄目になる。
スクリプトが長くなりすぎた所為で不具合が起こっているのか。
とりあえず、同じ行を10000行ほど並べたスクリプトでGUIウィンドウを表示してみたが、不正終了はしなかった。
発生条件がはっきりしなくて困る。
エラーはGui,Showの中で起こっている模様。
問題のGui,Showのオプションを色々変更してみたところ、エラーが発生しなくなることがあった。
ひとまず表示動作に影響しないパターンを探して、とりあえずエラーはなくせた。
どのような原理でこんな気まぐれな不具合が発生するのか。


名前

E-mail



0ch BBS 2005-10-08