home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 November / VPR9711A.ISO / VPR_DATA / Special / Wz30demo / wz30demo.lzh / STD / VWXW.TXT < prev    next >
Text File  |  1997-03-26  |  8KB  |  225 lines

  1. ------------------------------------------------------------------------------
  2.   検索サービス・ダイナミックリンク・ライブラリ
  3.                     VWXW.DLL(16bit版)
  4.                             Ver 1.08
  5.                     VWXW32.DLL(32bit版)
  6.                             Ver 1.10
  7.  
  8.                                     Copyright (C) 1995-1997 by M.Ishida
  9.                                                                     (wing)
  10.  
  11.                                        E-mail      : mishida@mxk.meshnet.or.jp
  12.                                        NIFTY-Serve : QFF00306
  13.                                        日経MIX     : wing
  14. ------------------------------------------------------------------------------
  15. ■ はじめに
  16.  
  17.  VWXW.DLL は文字列の検索を(正規表現などで)行うためのダイナミックリンク・ライ
  18. ブラリです。このソフトウェアはVZ エディタ Ver 1.60 に添付されているサービス・
  19. ルーチンである拙作のフリーソフトウェア VWX.COM を MS-Windows で利用するために
  20. DLL 化したものです。したがって、基本的には VWX.COM での検索機能を継承していま
  21. すが、DLL 化と合わせて若干の機能追加も行っています。
  22.  また、VWXW.COM はVZ エディタの内部処理をかなり意識した作りでしたが(VZ をな
  23. るべく変更しないように設計した)、VWXW.DLL は WZ エディタの処理に依存していない
  24. はずなので、他のアプリケーションでの利用も可能と思います。
  25.  
  26. (注)特に断らない限りVWXW.DLLと記述していますが、そのままVWXW32.DLLにも適用され
  27. ます。
  28.  
  29. ■ 機能
  30.  
  31.  このライブラリは次に示すような検索を行うためのソフトウェアです。
  32.  
  33.  (1)半角と全角を同一視した検索
  34.  (2)正規表現による検索
  35.  
  36. ■ 正規表現
  37.  
  38.  ・利用可能な正規表現は次の通りです。
  39.  
  40.     (1) c
  41.         以下に示すメタキャラクタを除き文字 c は、その文字自身を意味する。
  42.  
  43.     (2) \c
  44.         メタキャラクタとしての意味を打ち消す場合に使用し、文字cそのものを表わ
  45.         す。ただし、\tはタブ記号、\sは空白文字を意味する。
  46.  
  47.     (3) ^
  48.     パターンの先頭に存在するときのみ、行の先頭を意味する。
  49.  
  50.     (4) $
  51.        パターンの最後尾に存在するときのみ、行の末尾を意味する。
  52.  
  53.     (5) .
  54.        改行を除いた任意の1文字を表す。全角文字も1文字と扱う。
  55.  
  56.     (6) [...]
  57.         [] 内に含まれる任意の1文字を表す。a-z、あ-お等のような範囲指定も可能。
  58.  
  59.     (7) [^...]
  60.        [] 内に含まれない任意の1文字を表す。(6)と同じく範囲指定も可能。
  61.  
  62.     (8) r*
  63.         正規表現 r を0回以上繰返したものを意味する。
  64.  
  65.     (9) r+
  66.         正規表現 r を1回以上繰り返したものを意味する。
  67.  
  68.     (10)r?
  69.        正規表現 r の0回または1回を意味する。
  70.  
  71.     (11)r1|r2
  72.        正規表現 r1 または r2 を意味する。
  73.  
  74.     (12)\(r\)
  75.        正規表現 r を出現順に最大9個まで記憶する。(タグ付き正規表現)
  76.  
  77.     (13)\N
  78.        タグ付き正規表現により記憶した N 番目の文字列を示す。
  79.  
  80.     (14)r1&r2
  81.        正規表現 r1 かつ r2 を意味する。
  82.  
  83.   この他、以下に示す VWXW.DLL 独自の表現が利用可能です。
  84.  
  85.   (15)\a,\0,\A,\0,\a,\A
  86.     それぞれ以下の正規表現の代用を意味する。
  87.     [a-z]+,[0-9]+,[A-Z]+,[0-9]+,[a-z]+,[A-Z]+
  88.  
  89. ■ 制限事項など
  90.  
  91.  (1) バイナリ・ファイルでの正規表現は使わない方が安全です。
  92.   (2) 行をまたがった検索は出来ません。
  93.   (3) OR/AND 検索で一度に指定可能な検索パターンは16個までです。
  94.   (4) 正規表現を利用した置換については期待される結果とは異なる動作をする場合が
  95.     あり得ますので、いきなり全置換を行う場合には注意が必要です。
  96.   (5) & と | の併用は出来ません。
  97.  
  98. ■ 既知の問題点
  99.  (1) OR検索では検索文字列の中で最初にヒットした文字列を通知しています。
  100.    早く出現した方を通知するのがベストかもしれませんが、現時点では仕様とさせ
  101.    ていただきます(^^;
  102.  
  103. ■ その他
  104.  
  105.  (1) VWXW.DLL はフリーソフトウェアです。著作権は石田 暢彦(M.Ishida)が 所有しま
  106.       す。
  107.   (2) VWXW の API仕様については、下記まで電子メールにてお問い合わせ下さい。
  108.         E-mail     :mishida@mxk.meshnet.or.jp
  109.         NIFTY-Serve:QFF00306
  110.         日経MIX    :wing
  111.   (3) 転載・配布は事前に許可を得た場合に限らせて頂きます。
  112.     従来、私の公開している他のソフトは転載・配布は自由としていましたが、本ソ
  113.    フトについてはこのようにさせて頂きます。なお、メールに対する返事は遅くなる
  114.    ことがあることをお断りしておきます。
  115.   (4) このプログラムを使用したことによって生じた損害は、保証しません。
  116.   (5) 作者は、このプログラムに不備があっても、それを訂正する義務を負いません
  117.    が、努力はするでしょうから連絡をお願いします。
  118.   (6) 仕様拡張に関する意見は、私の技術と体力と気力が許す範囲で対応します。
  119.  
  120.   その他、常識的に取り扱って下さい。
  121.  
  122. ■ 謝辞
  123.  
  124.  WZエディタに VWXW.DLL を採用していただいた、山口 敏郎氏に。
  125.  また、見米快行氏からのお誘いがなければ、VWXW.DLL は生まれることは無かったと思
  126. います。このような機会を与えていただき感謝しています。
  127.  VZ の改変版と共に公開していた VWX に正式に対応していただいた、VZ エディタの
  128. 作者である兵藤嘉彦(c.mos)氏に。
  129.  最後になりましたが、VWX の時代からのユーザの皆さん、ありがとうございます。
  130.  
  131. ■ 履歴
  132.  
  133.  -- Ver 0.50  95/04/25 --
  134.  
  135.  ・VWX Ver 1.08c をベースにとりあえず最低限のレベルでDLL化してみた。
  136.  
  137.  -- Ver 0.60  95/04/29 --
  138.  
  139.  ◎ WZ Ver 0.91 添付版
  140.  
  141.  -- Ver 0.70  95/05/11 --
  142.  
  143.  ◎ WZ Ver 0.98 添付版
  144.  ・後方検索をサポート
  145.  ・一度に複数のプログラムでVWXW.DLLを利用可能にした。
  146.  ・その他細かな改良
  147.  
  148.  -- Ver 0.80  95/05/30 --
  149.  
  150.  ◎ WZ Ver 0.99 添付版
  151.  ・ワードサーチをサポート(VZ の論理を流用しています。感謝)
  152.  ・大文字・小文字の同一視指定が逆転していた。
  153.  ・c[a-z]+ の様な文字列の後方検索が不正であったものを修正した。
  154.  
  155.  -- Ver 0.90  95/06/01 --
  156.  
  157.  ・VWXW.DLL 独自の正規表現の実装
  158.  
  159.  -- Ver 1.0  95/06/08 --
  160.  
  161.  ◎ WZ Ver 1.0 添付版
  162.  
  163.  -- Ver 1.01 95/06/20 --
  164.  
  165.  ・WZ とのインタフェース不良を VWXW 側でとりあえず対策
  166.  
  167.  -- Ver 1.02 95/07/12 --
  168.  
  169.  ・Ver 1.01 で暫定対策したものを解除した。
  170.  ・後方検索時にファイル先頭行の文字列を正しく検索しなかったものを暫定的に修正
  171.   した。
  172.  ・VZ 依存部分が一ヶ所残っていたので削除した。
  173.  ・検索文字列が長すぎる場合は拒絶しているが、不当なメモリ1バイトを破壊してい
  174.   た。(WZでは多分問題は起きない)
  175.  ・改行なしのEOFで終わっている場合も行末と認識するようにした。
  176.  ・あいまい検索の一部を実装した。ただし、現時点でこの機能が働くことはない。
  177.  
  178.  -- Ver 1.03 95/07/21 --
  179.  
  180.  ・[\[\]]で検索できなかったものを修正した。([\]\[]なら正常だった(^_^;))
  181.  ・a:\などで一般保護例外で落ちていたものを修正した。
  182.  
  183.  -- VWXW32.DLL Ver 0.90 95/11/12
  184.     VWXW.DLL   Ver 1.04β 95/11/12(非公開) --
  185.  
  186.  ・32bit版のプロトタイプを開発した。
  187.  ・\(\)というタグによる無意味な文字列の検索をすると、全ての文字にマッチしてい
  188.   たものを修正した。
  189.  ・長音とマイナスを同一視可能とした。(VWXW32.DLL のみテスト的に)
  190.  
  191.  -- VWXW32.DLL Ver 0.95 95/11/26
  192.     VWXW.DLL   Ver 1.04 95/11/26 --
  193.  
  194.   [VWXW32.DLL]
  195.  ・全角・半角の同一視が正しく動作しなかったものを修正した。
  196.  ・その他
  197.  
  198.   [VWXW.DLL]
  199.  ・公開版
  200.  
  201.  -- VWXW.DLL/VWXW32.DLL Ver 1.05 95/12/03
  202.   (16/32bit版のバージョン統一のために、32bit版のバージョンを一気に上げた)
  203.  ・| または & を使用した検索で2番目以降にマッチした場合の動作が不正だった。
  204.   (VWXW32.DLL は初期バージョンから、VWXW.DLL はVer 1.04以降でのデグレード)
  205.  ・若干の改良
  206.  
  207.  -- VWXW.DLL/VWXW32.DLL Ver 1.06 96/01/04
  208.  ・s[a-z] などの後方検索で一般保護例外で落ちることがあったものを修正した。
  209.   (情けない(^_^;))
  210.  
  211.  -- VWXW.DLL/VWXW32.DLL Ver 1.07 96/01/17
  212.  ・タグ情報の通知を不定な状態で行っていたため、正規表現での検索後の置換で不当な
  213.   動作となっていた。WZ16 ではたまたま問題が顕在化しないようである。
  214.  
  215.  -- VWXW.DLL/VWXW32.DLL Ver 1.08 96/02/11
  216.  ・\1 などが空文字列の時の処理が不正であったものを修正した。
  217.  
  218.  -- VWXW32.DLL          Ver 1.09 96/03/22(WZ32 Ver 2.0添付版)
  219.  ・特定のDLL が無いと動作しなくなっていたものを修正した。
  220.  
  221.  -- VWXW32.DLL          Ver 1.10 97/02/11
  222.  ・\]、\^、\-で、それぞれ]、^、-と認識していなかった。
  223.  ・バージョンリソースを追加
  224. ===============================================================================
  225.