山紫水明さん:ファイル比較マクロについNo.00322
なむnomoto さん 06/01/14 18:12
 
 山紫水明さん
                     なむnomotoです

         今年もどうぞ宜しくお願い申し上げます。
         いつもお世話になりっぱなしで申し訳ありません。

 さて、御作マクロ FileComp.mac Ver2.3「ファイル比較マクロ」2001年 版があり
ますが、

 文字列だけを比較したくて、
    改行を無視。
    空白を無視。
    特定記号を無視。………無視するときは正規表現可能
 の結果を取り出すことは難しいでしょうか?

 つまり、ファイル体裁(行頭空白・改行位置・特定な記号「。」など)は異なるの
ですが、
 文章内容は非常に似ている場合に、2つのファイルの文字の違いだけを、簡単に把
握したいのですが、
 従来マクロでは大量に出過ぎて困ります。

 無視する文字表をファイルにあらかじめ記入して置いて、これを読み込んでファイ
ル比較すると、非常に便利じゃないかと思うわけです。
 ファイルA で無視する表
 ファイルB で無視する表 のように複雑じゃなくて「無視文字表.txt」は1つで良
いと思うのです。

 なお、 FileComp.mac Ver2.3 は、Windows2000 でうまく結果を残してくれません。
  何度実行しても、fcresult.txt が空です。

 fcresult.txt は、1行単位比較で良いのですが、改行を無視出来た場合は、
 ええと、どうすれば良いんでしょ (+_+)

 目下、ファイル比較でちまちまと牛歩より遅く進んでいます。(^^;)

 どうか宜しくお願い致します。例えば下記のような内容のファイルの比較です。
  これの改行位置が違うとか、片方のファイルに空白や記号が混じっているとかで
す。
−−−−−−−−−−−−−−−−
  [Aのファイル]
佛壽命長遠以下。凡有十一品半經文。第三
流通説。
    就第一序説開爲二。從初訖退座
一面。名爲通序。如是等五事。普貫衆經。故
云通序。從爾時世尊四衆圍繞以下盡序
品。名爲別序。言衆經現序不同。或有放
光地動出大音聲而作序。或有獻蓋現疾
作序。或現乞食遣書作序。如今此經。天
雨四花。地有六種震動。即諸經種種各異。故
稱別序。釋此通別二序。亦有種種。而今但
據一家所習。不煩多記。就第一通序中。即
有五事。一如是。二我聞。三一時。四住處。五
同聞衆。雖復五事分爲三。如是我聞二事。
表傳述有本。且表異外道我自然知之過。
一時者。欲表感應相稱一時而説。故爲物
有利。住處同聞衆二事。證成上我聞。證意
至處當釋。如是者。釋有多種。而今但據一
家所習兩物相似曰如。一物無非曰是。即
謂文如理是。言如來既以金口八嚮妙音爲
説此經。而阿難以肉口一音爲傳。然則口
義雖同金肉有別。音義雖似。一八不同。故


  [Bのファイル]
佛壽命長遠以下。凡有十一品半經文。第三
流通説。就第一序説開爲二。從初訖退座
一面。名爲通序。如是等五事。普貫衆經。故
云通序。從爾時世尊四衆圍&M006734;以下盡序 ← &M[0-9]+?; これ1文字と見なし
ます。
品。名爲別序。言衆經現序不同。或有放
光地動出大音聲而作序。或有獻蓋現疾
作序。或現乞食遣書作序。如今此經。天
雨四花。地有六種震動。即諸經種種各異。故
稱別序。釋此通別二序。亦有種種。而今但
據一家所習。不煩多記。就第一通序中。即
有五事。一如是。二我聞。三一時。四住處。五
同聞衆。雖復五事分爲三。如是我聞二事。
表傳述有本。且表異外道我自然知之過。
一時者。欲表感應相稱一時而説。故爲物
有利。住處同聞衆二事。證成上我聞。證意
至處當釋。如是者。釋有多種。而今但據一
家所習兩物相似曰如。一物無非曰是。即
謂文如理是。言如來既以金口八嚮妙音爲
説此經。而阿難以肉口一音爲傳。然則口
義雖同金肉有別。音義雖似。一八不同。故
−−−−−−−−−−−−−−−−

   





   

[ ]
RE:00322 山紫水明さん:ファイル比較マクNo.00323
なむnomoto さん 06/01/14 20:37
 
 山紫水明さん
                     なむnomotoです

   アップしてから、また思いついて。(^^;)

  ファイル比較の結果を、
 (1)fcresult.txt に吐き出す方法と、
 (2)画面上で比較できるようにする方法と、
  選択肢が出来たら良いのではないかと思います。

 文字列だけを比較したくて、
    改行を無視。
    空白を無視。
    特定記号を無視。例えば「。」「、」とか………無視するときは正規表現可能
  の場合、改行無視ですと、ファイルに吐き出すのは問題有りなので、
  画面上で比較できたら良いかと思います。

  画面上比較の場合ですが、
  Alt+W--F で比較が次々できたら良いのですが、現在の秀丸の標準仕様が
  そうなっているので、別のキー割当でも良いです。

  宜しくお願いします。


[ ]
RE:00323 山紫水明さん:ファイル比較マクNo.00324
山紫水明 さん 06/01/15 20:54
 
 なむnomotoさん,

> 文字列だけを比較したくて、
>    改行を無視。
>    空白を無視。
>    特定記号を無視。………無視するときは正規表現可能
> の結果を取り出すことは難しいでしょうか?

 このマクロは, Windows の fc コマンドを使っていますので,そのような融
通は残念ながら利きません。やるとすれば予め,空白や特定記号を削除した作業
用ファイルを作ってそれを比較するということになるでしょう。
 複数種類の文字・記号を削除するのは正規表現の置換で簡単にできるはずです。
 なお,改行を無視しようとすれば,改行を削除する必要がありますが,多分そ
のような長い行の比較はこのコマンドでは無理でしょう。

> なお、 FileComp.mac Ver2.3 は、Windows2000 でうまく結果を残してくれま
>せん。何度実行しても、fcresult.txt が空です。

 マクロの40行目くらいに 9x系と NT 系を選ぶ部分がありますが,そこでNT 系
が選択してありますか? それでできていたら,こちらには Windows2000 があ
りませんのでわかりません。

>  ファイル比較の結果を、
> (1)fcresult.txt に吐き出す方法と、
> (2)画面上で比較できるようにする方法と、
>  選択肢が出来たら良いのではないかと思います。

 これもこのコマンドの性質上無理です。

 お望みのことをこのマクロでやるのはやはり困難ですね。
 専用の比較ソフトをお探しになった方がいいような気がします。フリーでもあ
るのではないでしょうか。大分昔にたしか探した覚えがありますが。最近はあま
り使うことがないもので,具体的には知りません。

     では, (^^)/~
                                        山紫水明

[ ]
RE:00324 山紫水明さん:ファイル比較マクNo.00325
いいじま さん 06/01/16 09:13
 
いいじま(でるもんた)です。

>  このマクロは, Windows の fc コマンドを使っていますので,そのような融
> 通は残念ながら利きません。やるとすれば予め,空白や特定記号を削除した作業
> 用ファイルを作ってそれを比較するということになるでしょう。
>  複数種類の文字・記号を削除するのは正規表現の置換で簡単にできるはずです。
>  なお,改行を無視しようとすれば,改行を削除する必要がありますが,多分そ
> のような長い行の比較はこのコマンドでは無理でしょう。

UNIX発祥のdiffコマンドのWindows版がここにあります:
http://www.vector.co.jp/soft/winnt/prog/se015009.html
NT用と書いてありますが、これはWindows 3.x時代の名残でして、
9x系でもきちんと動作します。

ただ、diffコマンドもご希望のような融通は効きません。
前処理・後処理を別途書くしかないです。
秀丸マクロでもいいのですが、可搬性を考慮するとWindowsではJavaScript(WSH)が
よさそうです。Perlという手もあります。
(最低限の機能なら、perl.exeとperlcore.dllなりperl58.dllなりを持ち歩けば動き
ます。
 2バイト文字の扱いに支障をきたしますが…。
 日本語限定ならJperlという方法もまだあります。)

[ ]
RE:00325 山紫水明さん:ファイル比較マクNo.00326
なむnomoto さん 06/01/16 19:09
 
  山紫水明さん

 いいじま(でるもんた)さん
                 コメント有り難うございます。
                 なむnomotoです。

>>  このマクロは, Windows の fc コマンドを使っていますので,そのような融
>> 通は残念ながら利きません。やるとすれば予め,空白や特定記号を削除した作業
>> 用ファイルを作ってそれを比較するということになるでしょう。

 ううむ、やっぱりそうですか。
           他にファイル比較のプログラムはあるんですが、
           やたら出力して、特定記号無視というのはないんです。
 秀丸で特定記号削除ファイルの作成は、簡単なんです。
  今、それを2〜3種作成して比較していますが、
 文字の確認や訂正が結構手間がかかって面倒なんです。……こんなのはもっと簡単
になるはずだが、なんてムラムラ強欲 (^^;)
    我慢するかな〜


>>  なお,改行を無視しようとすれば,改行を削除する必要がありますが,多分そ
>> のような長い行の比較はこのコマンドでは無理でしょう。

  そういう事もあるんです。それで、マクロで改行を無視して画面表示して比較し
てくれると良いなぁ と思ったりします。
  秀丸自体がこの機能をもっていると、便利なんですよね。


>UNIX発祥のdiffコマンドのWindows版がここにあります:
>http://www.vector.co.jp/soft/winnt/prog/se015009.html
>NT用と書いてありますが、これはWindows 3.x時代の名残でして、
>9x系でもきちんと動作します。
>
>ただ、diffコマンドもご希望のような融通は効きません。

  どひゃ〜! やっぱりだめですか。

>前処理・後処理を別途書くしかないです。

  比較結果ファイルを吐き出さないで、画面上で比較作業ができれば、
  それでも良いんですけど、それも無理みたいですね。

>秀丸マクロでもいいのですが、可搬性を考慮するとWindowsではJavaScript(WSH)が
>よさそうです。Perlという手もあります。
>(最低限の機能なら、perl.exeとperlcore.dllなりperl58.dllなりを持ち歩けば動
>きます。
> 2バイト文字の扱いに支障をきたしますが…。
> 日本語限定ならJperlという方法もまだあります。)

  現在は、S-jisファイルのみなので、
  Jperl なら、重要な作業で(作ってもらったスクリプト)使っていますが、高速
で、結果ファイルを書き出しています。
  しかし画面上で見ながら比較できるスクリプとは、随分面倒そうですね。

  秀丸が、「無視記号ファイル」を参照しながら比較できるようになると
  便利だとも思いますが、思ってるだけでは駄目ですね。ううむ。
_____


[ ]
RE:00325 山紫水明さん:ファイル比較マクNo.00327
山紫水明 さん 06/01/16 20:40
 
 いいじまさん,

 どうもわざわざコメントいただきありがとうございます。

>UNIX発祥のdiffコマンドのWindows版がここにあります:
>http://www.vector.co.jp/soft/winnt/prog/se015009.html

 ご紹介ありがとうございます。簡単にすぐ使えるというわけにもいかないよう
なので,機会があれば試してみます。

>秀丸マクロでもいいのですが、可搬性を考慮するとWindowsではJavaScript(
>WSH)がよさそうです。Perlという手もあります。

 ITとは全く無関係の仕事をしていまして,秀丸マクロ以外のプログラミング
のことやソフトウェアのこと,ほとんど知りません。(;;)

                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:00326 山紫水明さん:ファイル比較マクNo.00328
山紫水明 さん 06/01/16 20:52
 
 なむnomotoさん,

> 秀丸で特定記号削除ファイルの作成は、簡単なんです。
>  今、それを2〜3種作成して比較していますが、

 それしかないでしょうね。

>  そういう事もあるんです。それで、マクロで改行を無視して画面表示して
>比較してくれると良いなぁ と思ったりします。

 ちょっと思いつきませんね。
 いずれにしてもファイル自体を比較する以外にはないような気がします。将来
はわかりませんが。

 DF という比較ソフトがあります。半角のスペースやタブは無視してくれるの
ですが,それ以上は無理ですね。
http://www.vector.co.jp/soft/win95/util/se113286.html

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:00328 山紫水明さん:ファイル比較マクNo.00329
なむnomoto さん 06/01/17 17:13
 
 山紫水明さん
                         なむnomotoです

> ちょっと思いつきませんね。
> いずれにしてもファイル自体を比較する以外にはないような気がします。将来
>はわかりませんが。
>
> DF という比較ソフトがあります。半角のスペースやタブは無視してくれるの
>ですが,それ以上は無理ですね。
>http://www.vector.co.jp/soft/win95/util/se113286.html

  いまごろ、ですが・・・
 秀丸メニュー その他−−動作環境−−その他のコマンド−−比較
 の中に、「空白・タブを無視して比較する。」があるのを見つけました。

 ここに、「改行を無視して比較する。」
    とか、
   「特定記号などを無視して比較する。」……[ 記入窓 ]
    というのがあると良いような記がしますが、
    何かマズイ問題が起こるでしょうか。何でもかんでもは無理だとしても、
    検索の正規表現くらいまで包摂してくれると良いような気もします。

 マクロでやろうとしても、コマンドは下記1つだけみたいですから、
 ,regular をくっつけてもだめでしょうね。

 例:
compfile findhidemaru( "c:\\abc.txt" );

  ちまちまやるしかないか (+_+)
_____


[ ]
RE:00329 山紫水明さん:ファイル比較マクNo.00330
山紫水明 さん 06/01/17 21:35
 
 なむnomotoさん,

> ここに、「改行を無視して比較する。」
>    とか、
>   「特定記号などを無視して比較する。」……[ 記入窓 ]
>    というのがあると良いような記がしますが、

 一度要望を出されてはいかがでしょう。ダメ元だと思って。
 もしかしたら,開発ネタくらいにはしてもらえるかも知れません。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:00330 山紫水明さん:ファイル比較マクNo.00331
なむnomoto さん 06/01/17 22:32
 
 山紫水明さん
                    なむnomotoです

> 一度要望を出されてはいかがでしょう。ダメ元だと思って。
> もしかしたら,開発ネタくらいにはしてもらえるかも知れません。

  ご指導ありがたく承りました。
  ダメ元だと思って、早速書き込みました。

  ファイル比較は、以前に問題になったときに、結構面倒な機能だと
  担当さんが言われたような記憶がありますから、
   本当にダメかも・・・・ダメの元が右往左往 (^^;)
              実現すれば、嬉しい の元。
____

[ ]
RE:00322 山紫水明さん:ファイル比較マクNo.00332
nohhoso さん 06/01/18 01:43
 
nohhoso と申します。

こちらのdiffツールなどいかがでしょうか。

Rekisa http://hp.vector.co.jp/authors/VA017396/software/Rekisa/

文字コードを自動認識してくれて、空白を無視したり、フィルタを設定して
指定の文字を無視したりできます。
3つ以上の比較もできる優れものですよ。
私は愛用しております。

ただし、.NET Framework 1.1をインストールしておく必要があります。


[ ]
RE:00332 山紫水明さん:ファイル比較マクNo.00333
なむnomoto さん 06/01/18 13:03
 
 nohhoso さん
                          なむnomotoです

 コメントありがとうございます。
 早速に Rekisa.exe をインストールして使ってみました。

 「おおお! 凄い!」という感じです。
  表示文字が大きくないので、目が疲れそうですが、表示文字サイズの拡大はでき
ない様子ですね。

 エディタに秀丸を関連づけて、秀丸でもファイルを開いて、こちらは文字拡大が可
能なので、
 比較校正をやってみました。巧く行ってます。

>指定の文字を無視したりできます。

 これだけあれば、私の目的は大体いけますね。
 特定文字の無視は、いろいろ試してみて工夫が出来るところが良いですね。

>ただし、.NET Framework 1.1をインストールしておく必要があります。

  24メガバイトもあるんですね。これもインストールできました。
  ご教授有り難うございます。
  御礼申し上げます。 m(_ _)m
_____


[ ]
RE:00333 山紫水明さん:ファイル比較マクNo.00334
nohhoso さん 06/01/18 23:17
 
nohhoso です。

気に入っていただけたようで、何よりです。(^_^)

>  表示文字が大きくないので、目が疲れそうですが、表示文字サイズの拡大はで
>きない様子ですね。

あれ、私が使っているのでは、できますけど・・・。Ver0.32.008です。
メニューの[設定]-[設定]を選んでダイアログを表示し、
[表示]タブを選ぶと、[フォント]という項目があります。

あと、余計なお世話かもしれませんがもう一つ。

デフォルトの配色だと、差異がある行の背景色と、差異がある文字の
アンダーラインが似た色になってます。
アンダーラインをもっと派手な色にすると、差異がある文字が
分かりやすいです。

では。


[ ]
RE:00334 山紫水明さん:ファイル比較マクNo.00335
なむnomoto さん 06/01/19 22:16
 
  nohhoso さん
                        なむnomotoです

>気に入っていただけたようで、何よりです。(^_^)

  いやあ!便利です。・・・画面に一覧性があって見落としが減りました。

>>  表示文字が大きくないので、目が疲れそうですが、表示文字サイズの拡大はで
>きない様子ですね。
>
>あれ、私が使っているのでは、できますけど・・・。Ver0.32.008です。
>メニューの[設定]-[設定]を選んでダイアログを表示し、
>[表示]タブを選ぶと、[フォント]という項目があります。

  ホントですね。フォントですねと云うべきか (^^;)
  Windows でフォントの大きさが自由に表示できないのはおかしいと思いながら、
  深い階層まで覗かなかったのがイケマセンでした。
  ちゃんと希望通りになっています。これで見落としが無くなるでしょう。

>あと、余計なお世話かもしれませんがもう一つ。
>
>デフォルトの配色だと、差異がある行の背景色と、差異がある文字の
>アンダーラインが似た色になってます。
>アンダーラインをもっと派手な色にすると、差異がある文字が
>分かりやすいです。

  これは、最初に実行しました。
  反転部分のカラーも工夫しました。アンダーラインも派手派手太くできました。
  メニューの階層が浅かったので出来たんです。

  基本機能で、改行や欠字や増加文字をちゃんと理解してるところは、凄く
  便利です。
  本当に有り難うございます。良いソフトです。

  実際は文章の比較ではなくて、何か会計表とか、プログラムソースなどの比較に
使うものなんでしょうね。
  遺伝子研究とか、理化学系の研究用のソフトのようです。
    便利なものがあるんですね。
_____



[ ]