特定な語句を数えたいのですがNo.05158
さん 00/02/29 00:22
 
もしかしたら恥ずかしいくらい初歩的な質問なのかもしれませんが
何万行単位の長文の中から特定な語句(例えば「秀丸さんは」のような)が、いくつ
含まれているか知りたいのですが、そういう機能はありますか?

[ ]
RE:05158 特定な語句を数えたいのですがNo.05161
うっきー さん 00/02/29 08:35
 
>もしかしたら恥ずかしいくらい初歩的な質問なのかもしれませんが
>何万行単位の長文の中から特定な語句(例えば「秀丸さんは」のような)が、いく
>つ含まれているか知りたいのですが、そういう機能はありますか?

上記のような機能があるのか判りませんが、
「検索メニュー」の「置換」で全置換を行えば、
「○個の置換を行いました。」というウィンドウが出てきます。
マクロでも出来ますが、このようにした方が簡単なので
私はいつもこうしてます。

[ ]
RE:05161 特定な語句を数えたいのですがNo.05162
ENCODINGSHIFTJIS さん 00/02/29 09:07
 
>>何万行単位の長文の中から特定な語句(例えば「秀丸さんは」のような)が、いく
>つ含まれているか知りたいのですが、そういう機能はありますか?
>
WC(ワードカウント)ならコマンドでもできます。まとめて処理するときは便利。

秀丸からなら「grep の実行」でファイル名を指定して実行し
末尾の行数を見る−ファイル名行数。
 置換との違いは開いて見なくてよい。その分早い。

DOS窓> c:\windows\command\find/?
で Winのfind コマンドの説明も見ましょう

DOS窓> c:\windows\command\find/C/I "set" c:\aoutoexec.bat c:\config.sys

違いは FINDは正規表現が使えない。

__EOF__

[ ]
RE:05161 特定な語句を数えたいのですがNo.05165
きいろいまふらあ さん 00/02/29 11:54
 
きいろいまふらあです。補足。

>「検索メニュー」の「置換」で全置換を行えば、

検索文字列と置換文字列を同じにします。
「秀丸さんは」を「秀丸さんは」に置換するわけです。
#あれ?大丈夫だよなあ?

[ ]
RE:05162 特定な語句を数えたいのですがNo.05169
ひろ さん 00/02/29 13:57
 
 くさん、ENCODINGSHIFTJISさん今日は、ひろです。
> 秀丸からなら「grep の実行」でファイル名を指定して実行し
> 末尾の行数を見る−ファイル名行数。
>  置換との違いは開いて見なくてよい。その分早い。
 ちょっと質問。この場合 1 行に検索対称となる語句が複数ある場合、ズレ
が生じると思いますので、ちょっと拙いのではないでしょうか?

[ ]
RE:05169 特定な語句を数えたいのですがNo.05176
ENCODINGSHIFTJIS さん 00/02/29 16:58
 
> ちょっと質問。この場合 1 行に検索対称となる語句が複数ある場合、ズレ
>が生じると思いますので、ちょっと拙いのではないでしょうか?

おっしゃる通りです、集めた grep/find 行を全置換で数えれば
少しはマシになりますか? 万行のテキストを開く負荷がわからないので。
安全性のためには「読み取り専用」openでとか、数える語句の
総数によって良い手順が違うし。



[ ]
RE:05158 特定な語句を数えたいのですがNo.05177
安久津 さん 00/02/29 17:19
 

>何万行単位の長文の中から特定な語句(例えば「秀丸さんは」のような)が、いくつ
>含まれているか知りたいのですが、そういう機能はありますか?
標準ではありません。マクロで実装できます。

>もしかしたら恥ずかしいくらい初歩的な質問なのかもしれませんが
マクロの扱いを全くしらない方かもしれないので、
マクロの導入方法も述べます。

(1)次の文章(マクロ)の「// 始まり」から「// おわり。」までを、
コピーして、countword.mac という名前で、保存して下さい。

// 始まり
  ##interval = 2000;
  ##cx = x; ##cy = y;
  escape; gofiletop;
  find;
  ##result = result;
  if( searchbuffer == "" ) ##result = 0;
  if( ! ##result ){
    moveto ##cx, ##cy; beep; endmacro;
  }
  disabledraw;
  gofileend; $$end = " / " + str(lineno);
  ##t = tickcount + ##interval;
  gofiletop;
  ##w = 0;
  right;
  if( result ){
    findup; ##w = result; escape; left;
  }
  finddown;
  while( result ){
    ##w = ##w + 1;
    if( tickcount > ##t ){
      title str(lineno) + $$end;
      ##t = tickcount + ##interval;
    }
    finddown;
  }
  moveto ##cx, ##cy; enabledraw;
  $$mes = "検索文字=" + searchbuffer + "\n個数=" + str(##w);
  message $$mes;
  setclipboard $$mes + "\n";
endmacro;
// おわり。

(2)countword.mac を秀丸マクロフォルダにコピーして下さい。
 秀丸マクロフォルダを設定していない場合には、
 秀丸本体のフォルダにコピーして下さい。

(3)特定単語の総数を計算したいファイル上で、次の事を行って下さい。
 秀丸メニュー「マクロ(M)」->「マクロ実行(X)」
 ファイル名の中から「countword.mac」を選択して、
 「OK」をクリックして下さい。

(4)検索ダイアログが現れます。
 ここの検索文字入力フィールドに「総数を計算したい単語」を
 入力して下さい。
「下検索(N)」をクリックして下さい。

(5)総数の計算が始まります。
 時間がかかる場合(2秒以上)は、秀丸ウインドウのタイトルに、
 進行状況を表示します。

(6)計算が終了すると、総数を表示して、マクロが終了します。

(7)マクロが終了した後に、秀丸メニュー「編集(E)」->「貼り付け(P)」
 をクリックすると、総数を入力する事ができます。

ではでは。
#こういうマクロは誰か公開していないのかな?
#置換はやめようよ。(^^;

[ ]
RE:05177 特定な語句を数えたいのですがNo.05178
番頭++ さん 00/02/29 18:30
 
>#こういうマクロは誰か公開していないのかな?
>#置換はやめようよ。(^^;

想像するにあまりに簡単なのと、
作成するたびに、用途が違うので、
みんな発表しないのいでしょう 。。。

//  find1.mac
//  ファイル名に検索する文字列を含むと正常に稼動しません !!!
//  1 件しかなく、そこにカーソルがあると動きません !!!
//  escape; gofiletop;  //  ファイルの先頭から
    find;
    if( ! result ){
        findup;
        if( ! result ){ endmacro;   }
    }
    $wk1 = searchbuffer;
    if( $wk1 == "" ){   endmacro;   }
    localgrep $wk1, icon;
    replaceallfast $wk1, $wk1;
    #i = result;
    $wk2 = $wk1 + " を " + str(#i) + " 件見つけました。";
    setclipboard $wk2 + "\n";
    setsearch searchbuffer, ( searchoption & 0xF9 );
    message $wk2;
    quit;   //  localgrep の結果を破棄します。
endmacro;

[ ]
RE:05177 特定な語句を数えたいのですがNo.05187
きいろいまふらあ さん 00/02/29 23:50
 
まふです。

> #置換はやめようよ。(^^;

そうですね。
今回のケースではあまり得策とはいえませんね。
でも小さいテキストだったらそれなりに有効な方法だと思いますが。
#なによりマクロ使わんで済むのは大きい。

自分だったら(巨大なテキストの場合)手動でgrepして、
手動で置換しちゃうと思います。これからは。

勉強になりました。

----
高木 郷
e-mail:xxxx@pluto.dti.ne.jp

[ ]
RE:05161 ありがとうございますNo.05215
さん 00/03/03 01:03
 
>上記のような機能があるのか判りませんが、
>「検索メニュー」の「置換」で全置換を行えば、
>「○個の置換を行いました。」というウィンドウが出てきます。

早速のレスありがとうございます。
ど素人の私には、やはりこれが一番です。目からウロコ。
それにしても活気のあるHPですね。

[ ]