|
山紫水明さん
たびたびお世話になります。
> まず,少し誤解しているのかもしれませんが,前提がよくわかりません。
>
>> **【例1】*************************************************
>> ay with more rain and strong winds in a slippery sixth stage.[改行]
>> [EOF]
>> ***********************************************************
>>
>> 例えば【例1】のような文では、スペースと改行の数が合わせて25に
>> なって、私の求める分かちを基準とする単語(語節)数の数(25)に
>> なりますが、
>
> この例ですと,実際に数えてみると単語数(語節)は12にしかなりません。25とい
>うのはどういう数え方でしょうか。
私の最初に出した例は以下の例文です。
**【例1】*************************************************
1. Tour de France riders endured another miserable day in the saddle on Frid
ay with more rain and strong winds in a slippery sixth stage.[改行]
[EOF]
***********************************************************
これだと、単語(語節)の数が25になりますよね。山紫水明さんの例文は
一部抜けていますね。
>> [^ \n]+
>>
>> の部分を上のマクロに入れて
>>
>> searchdown2 "[^ \n]+", regular;
>>
>> として山紫水明さんのマクロ文を動かしても求める結果にはなりま
>> せん。
>
山紫水明が試したところ、置換と同じ結果がでますか。私のマクロの
改造に間違いがあるのでしょうか?
searchdown2 "[^ \n]+", regular;
この部分を
searchdown2 "[^ \n]+", regular;
このように変えただけですが。
そこでRE:04399でIranoanさんがお作りになったマクロの検索部分を
変えて、以下のようにしたところ、求める結果になりました。
disabledraw;
openreg "CURRENTUSER", "Software\\Hidemaruo\\Maruo\\Env";
#reg_search=getregnum("SelectFound");
if(!#reg_search){
writeregnum "SelectFound",1;
envchanged;
}
closereg;
$search=searchbuffer;
#search=searchoption;
#orgX=x;
#orgY=y;
gofiletop;
searchdown2 "[^ \n]+",regular;
while(result){
moveto selendx,selendy;
#word_num=#word_num+1;
finddown2;
}
moveto #orgX,#orgY;
message str(#word_num) + " words!";
if(!#reg_search){
openreg "CURRENTUSER", "Software\\Hidemaruo\\Maruo\\Env";
writeregnum "SelectFound",#reg_search;
envchanged;
closereg;
}setsearch $search, #search;
とりあえず上のマクロのような結果が出れば問題解決ですが、なぜ
山紫水明さんのマクロの検索部分を上のマクロのように [^ \n]+ と
しても同じ結果がでないのか、まだゆっくりとマクロ文を解析して
いないので分かりません。分からないというより、山紫水明さんが
置換と同じ結果が出たと言うのがどうしてか分かりません。
ちなみにチェックはMSワードなどといったワードプロセッサーの
単語数の数と同じか同じでないかという基準で調べています。また、
かなり大きなファイルでチェックしています。結果が3万単語といった
大きさです。
|
|