半角カナを全角カナに(数字以外)No.01623
旅人 さん 00/11/24 01:44
 
半角カナを全角カナを一括して変換したいのですが
よくわからなくて困っています。
過去ログを読んだところ、

>00211 98/09/11 17:54  RE:00210 半角カタカナを全角に
>投稿者 : noro

というのがありましてnonoさんがサンプルを提示されています。
以下がnonoさんの書かれたコードです。

---引用はじめ---
  $bu = searchbuffer;
  #op = searchoption;
  if ( selecting ) escape;
  openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
  #sf =  getregnum( "SelectFound" );
  if ( ! #sf ) { // 検索ヒット時の点滅を選択に設定変更
    writeregnum "SelectFound",1;
    envchanged;
  }
  gofiletop;
  if ( code >= 0xA1 && code < 0xDF ) {//ファイル先頭が半角カナの時
    #ins = 1;
    insertfix "\n";
  }
  while (1) {
    searchdown "[。-゚]+",regular;
    if ( result ) tozenkakukata;
    else break;
  }
  if ( ! #sf ) { // 検索ヒット時の点滅を選択に設定変更を戻す
    writeregnum "SelectFound",0;
    envchanged;
  }
  setsearch $bu, #op;
  if ( #ins == 1 ) {
    gofiletop;
    delete;
  }
  endmacro;
---引用終わり---

このコードで半角カナを全角カナに変換すると、困ったことに
数字まで全角に変換されてしまいます。
アスキーコードの範囲を見る限り間違ってはいないと思うのですが…
「数字は全角に変換しない」にはどのようにしたらよろしいでしょうか?
おわかりの方居りましたら、ご教示ください。
よろしくお願いします。


[ ]
RE:01623 半角カナを全角カナに(数字以外No.01624
ENCODINGSHIFTJIS さん 00/11/24 08:59
 
>    searchdown "[。-゚]+",regular;
>このコードで半角カナを全角カナに変換すると、困ったことに
>数字まで全角に変換されてしまいます。
>アスキーコードの範囲を見る限り間違ってはいないと思うのですが…
?
手操作の 検索 [。-゚]+ 正規表現 で 半角数字に マッチしたら
おかしいですが。 確認してください。


[ ]
RE:01624 半角カナを全角カナに(数字以外No.01625
ENCODINGSHIFTJIS さん 00/11/24 09:24
 
マクロのループを 手操作で再現したら たしかに そうなった
テストデータは
fjsldjfl;as
アイ12321321ドウ
sakl;jfsla;jfポiキoコqヤjaklhfkahl;a

tozenkakukata; で 選択が解除されていなかった
 while (1) {
   searchdown "[。-゙]+",regular;
   if ( result ) {tozenkakukata; escape;}
   else break;
  }

とりあえず 、 escape; 追加
どー?

[ ]
RE:01625 半角カナを全角カナに(数字以外No.01626
旅人 さん 00/11/24 21:47
 
>とりあえず 、 escape; 追加
>どー?

オッケーです!感激!

[ ]