検索の正規表現でヒットする文字列に対しNo.20556
かずあ さん 05/12/06 19:57
 
お世話になってます。

簡単にできそうな事なのですが、テクニックがないので実現できません。
やりたいのは検索の正規表現でヒットした文字列に対してchar関数で置換したいので
す。

F040〜F9FBの範囲の文字を検索してchar(0xFxxx)で変換した値に置き換えしたいので
す。
正規表現でF[0-8a-zA-Z][0-8a-zA-Z][0-8a-zA-Z]でヒットさせて
そのヒットした文字に対してchar(0xFxxx)をかけたいのですが、
何かいい方法はないでしょうか?

よろしくお願いします。

[ ]
RE:20556 検索の正規表現でヒットする文字No.20557
Iranoan さん 05/12/06 20:23
 
 かずあさん今日は、Iranoan です。
 念の為お断りしておくと、開発者とは何の関わりも無い単なる一ユーザです。
> 簡単にできそうな事なのですが、テクニックがないので実現できません。
> やりたいのは検索の正規表現でヒットした文字列に対してchar関数で置換したいので
> す。
 一度文字列変数に取り込む必要があります。流れとしては、大体次のように
なると思います。
//処理前の措置
#reg_search = searchmode;
$search = searchbuffer;
#search = searchoption;
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "SelectFound",1;//検索でのヒット箇所を範囲選択
envchanged;
closereg;
gofiletop;

//実際の処理
setsearch "F[0-8a-zA-Z][0-8a-zA-Z][0-8a-zA-Z]", 0x10;
finddown2;
while( result ){
  $s = gettext( foundtopx, foundtopy, foundendx, foundendy, 1 );
  //変換処理をここ書く
  insert $s;
  finddown;
}

//後始末
if( !#reg_search ){
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  writeregnum "SelectFound",#reg_search;
  envchanged;
  closereg;
}
setsearch $search, #search;

[ ]
RE:20557 検索の正規表現でヒットする文字No.20558
かずあ さん 05/12/06 21:08
 
こんにちは、Iranoanさん

早速の返信ありがとうございます。
マクロの部分がまだなれてないので、ちょっと解析が必要ですが、
ちょっと修正してそれなりにうまくいっています。

大変参考になりました。ありがとうございました。


[ ]