この『桐でGrep ver.2.50』は、先に(2001年03月)公開したver.2.20版 の改良版です。 前回は、主ユーザがKHさん+αでしたが、その後、私自身もユーザと なって使い回すようになって、幾つかの使いにくい部分を修正したか らです。修正点の細部は後述しますが、自分で使ってみて最も感じた のが次の点です。 表データは(項目番号検索を駆使した多項目検索がウリだったが)、 けっこう変数未宣言で引っ掛かるモノがあり、その点ではかなり「ツ カイモノニナラナイ」場合も多い。 txtとk3とcsvデータについては、文字数制限に引っ掛かるものも多々 あり(それも超多ファイルを対象とした場合はファイル名取得の段階 で引っ掛かってしまった)、既存のテキスト系Grepには遥か〜〜に及 ばないことを痛感しちょります。(^^;) と云う訳で、上記は苦労した割にはさほどお役立ちにはならないよう で、少々残念です。 しかしながら、cmdとkevについては、我ながら甚大な威力を発揮でき たと思います。特にkevファイルね。 従来のcmd方式だと、cmdファイルの数はそう多くはなく、小数の(大 きな)cmdの中に多処理を組み込んで使うことが多かったと思います。 そのため、記述内容について(手動)検索する際に、その対象とする cmdファイル名は大体頭の中で想定できた訳です。ところが、イベント を使うようになってからは、それこそ「wfmの数ほどkevがある」に近 いような状況とあいなりましてですね、手動検索の限界を痛感するよ うになりました、特に大規模なシステムだとなおさら。「はて? ど のkevに記述したのだろうか?」って。 そんな時に、この『桐でGrep』でkevの検索をかけると、その便利さを 我ながら実感できるようになった次第であります。前回までの「ユー ザー」であったKHさんなんぞは、専らのcmd・kevの方でGrepしていた そうで、なるほどそれも「むべなるかな」であります。余談ながら、 「作る人」と「使う人」の関係では、やはり「使う人=作る人」であ ることが最も効率的……なる一般的結論を再認識した次第。                        2001.06.23 悲しげ 以下は、前版以降の改良点。 *---2001年 3月26日頃 ver.2.30 1)牡丹にフォーカス設定することで、テキストボックス入力値を確   定した( by hidetakeさん) 2)kevとcmdでは「\n」が存在してもメッセージ出さないことにした  (うるさ過ぎる) 3)一覧表印刷ヘッダに拡張子種別と当該検索文字列を明記した *---2001年 5月 7日 ver.2.40 1)検索時に「拡張辞書順」(:E)を指定 ( by 幅田さんの本) 2)表オープン時に「終了状態」パラメータを不可(エラー時対策) 3)「.and 検索」「.or 検索」「履歴利用(検索文字列の)」は当面   不採用(不必要と思うし) *---2001年 6月 3日〜 ver.2.50 1)牡丹からkevを実行するに際し、わざわざ「左クリック」イベント   を介さずに(^^;)「手続き実行」とした(いえ、手続きを共用する   訳ではないから「左クリック」だけでも冗長にはならないが) 2)表定義中で変数を使っているような表をGrepする際には役に立たな   いため、変数管理ルーチンを組み入れた。この変数管理、牡丹の機   能として存在していないので、kevの記述で実行させたところ「フォ   ームに組み込まれた状態では実行できない」と叱られた(^^;)。そこ   で、少々裏技的になるが、牡丹で「開く→○○.cmd」(by初心者さん)   の方式を採用。でも、これって危ないかも?   なお、この際の「表示」「訂正」の(牡丹機能の)挙動がよく判らん。(^^;) * 以下は、2.20版のテキストの再掲。 -------------------------------------------------------------- 表データについては、(数値系以外の)検索文字列が、どの表の、ど の項目の、何行目に存在するかを、当該文字列を含む1レコードデー タとともに、一覧表として表示させます(印刷可)。 また、cmd・kev・txt・k3・csvについては、上記から「項目」関係を 抜いた形、即ちどのファイルの何行目に存在するかを、その検索文字 列を含む1論理行とともに出力します。 http://www.nsknet.or.jp/~habata/ 元々本作品は幅田氏が主宰している上記の桐井戸端会議室でのQ&A で書いたものでして、一括処理(cmd)の記述をテキストとして挙げただ けのシロモノでした(cf.下記の過去ログ)。 http://www.fuku3.com/~habata/kbbs/kakov8/07193.htm http://www.fuku3.com/~habata/kbbs/kakov7/05990.htm ところが、KHさんをはじめ約1名以上の方から、過分なるオダテを伴っ て(^^;)、きちんとした作品として公開して欲しい旨要望がありました。 そこで、表やcmdだけではなく、もう少し機能を拡張し、幾つかのエラ ー対策を加えて、より汎用的なものとして、いっちょ作り変えてみるこ とにいたしました。 拡張に当たっては、単にtblやcmdのみならずkevや果てはtxt、k3、csv と、桐に関わる全てのデータを同時に扱ってしまおうとの野望がふくら みましてですね(テキストなんかそれ用のGrepの方がより高機能で既存 なのにね)(^^;)、結構泥沼にはまったりしましたが、特に「k3フォー マットデータをカンマ区切りを無視して桐表の1項目に読み込む」方法 (何と「ファイル読み込み 固定長」を使う)なんかは、上記の井戸端 会議室で諸氏にご教示いただいたりして、何とかクリアできました。で も一番苦労したのは、「\t」がタブと見なされる件を含む制御文字の扱 い関係でしたね。(;_;) ※ したがって、「印字」または「読み込みテキスト」における区切り  文字は、結局はタブ等を用いられず、最終的には「〓」を使いました。  データ中に有りにくい文字との趣旨で採用したのですが、逆にこの字  がもしもデータ中に存在した場合には、検索は不完全となることとの  引き換えで決定した次第であります。 ※ tblデータ検索において、当初は桐V5以前の表があった場合は、手動  で「V8に変換しない」ように指定する仕様でした。tbl自体は作業表で  はなく直接開くようにしていたからです。ところがこの仕様だと、うっ  かりV8形式に変換してしまう危険性(元に戻せない)がありますから、  ここはやはり危険を避けるために、複写データを作業ファイルとして  検索に使うことにしました。そのため幾分遅くなってしまいましたが、  安心して「V8に変換」して作業継続可能とした次第です。 あと、検索対象ファイルの個々の指定ではなく、フォルダ内全ファイル 検索も盛り込んだり(サブフォルダ検索は未完)、あるいはこれは前出 KHさんからのリクエストで「利用者コード」設定も付加したり、最終的 には、それなりのものが出来上がったと自負していたりします。 起動は、"桐でGrep.wfm" からです。 なお、使用に当たっての留意点は、起動時に表示させるようにしてあり ますので、くどいようですが、その都度ご確認下さい。また、検索失敗 はもとより、本作品を使ったことにより、表が壊れたとか、その他の不 具合が出たとしても、作者としてはちょっと謝る以上のことはできませ んので、その点、ご了解願います。 --------------------------------------------------------------