マクロで半角文字を全角文字に変換No.13192
eunos800 さん 02/10/25 22:45
 
秀丸のマクロで半角文字を全角文字に変換したいのですが、
--------------------------------------------------
gofiletop;
setsearch "今日、MM月DD日、", 4;
refreshdatetime;
$YTB_M_D = "今日、" + month + "月" + day + "日、";
setreplace $YTB_M_D;
finddown;
gofiletop;
setsearch $YTB_M_D, 0;
finddown;
tozenkakukata;
--------------------------------------------------
上記では、日付は入るのですが、半角数字のままです。
何が間違っているのでしょうか?
マクロに詳しい方の「ご指摘/ご指導」を頂けると
嬉しいのですが。

[ ]
RE:13192 マクロで半角文字を全角文字に変No.13193
山紫水明 さん 02/10/26 08:28
 
 eunos800さん,こんにちは。

》秀丸のマクロで半角文字を全角文字に変換したいのですが、
・・・・
》上記では、日付は入るのですが、半角数字のままです。

 おやりになりたいことがもう一つはっきりわからないのですが。
 半角数字全般を全角に変換したいということでしょうか,それとも

"今日、10月26日、"

という今日の日付だけを,

”今日、10月26日、”

に変換したいということでしょうか?

 もし後者であれば,あまり難しく考えずに,

//------------------------------------------------
gofiletop;
searchdown2 "今日、" + month + "月" + day + "日、";
tozenkakukata;
escape;
endmacro;
//------------------------------------------------

でできませんか?
(「検索の表示」が「範囲選択」になっている必要があります)

 日付一般を全角に変えたいということであれば,また別の工夫が必要でしょう。

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

[ ]
RE:13193 マクロで半角文字を全角文字に変No.13194
山紫水明 さん 02/10/26 11:22
 
追伸です。

もしかしたら,おやりになりたいことは,
 "今日、MM月DD日、"
という文字列を全角の今日の日付に変えたいということでしょうか?
 そういうことであれば,お示しのマクロでいけると思います。
ただし,「検索の表示」が「範囲選択」になっている必要があります。
最後に
escape;
の1行を加えた方がいいでしょう。

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

[ ]
RE:13194 マクロで半角文字を全角文字に変No.13195
eunos800 さん 02/10/26 15:19
 
早速のご指導、有り難うございます。

説明が足りなくて申訳有りませんでした。

>もしかしたら,おやりになりたいことは,
> "今日、MM月DD日、"
>という文字列を全角の今日の日付に変えたいということでしょうか?

その通りです。
日付の入る文書をしょっちゅう使うので、テンポラリ分で
"今日、MM月DD日、"を自動的に入れておき、その後で、マクロで
使う日付を代入しています。
今までは半角数字でやってたのですが、なんとなく全角数字の方が
見た目のバランスがいいと思い作りました。

さっそく指摘の通りにやったのですが、だめでした。

>「検索の表示」が「範囲選択」になっている必要があります。

上記を参考に、以下のようにしたらうまくいきました。
------------------------------------------------------------
gofiletop;
setsearch "今日、MM月DD日、", 4;
refreshdatetime;
$YTB_M_D = "今日、" + month + "月" + day + "日、";
setreplace $YTB_M_D;
finddown;                 // 日付を置換代入

golinetop;                // その文のある先頭にカーソルを移動
searchdown $YTB_M_D;      // 文の位置をサーチ
right 1;                  // カーソルを右に動いて
left 1;                   // 左に動いて指定文の左側に移動
beginsel;                 // 選択開始
right strlen ($YTB_M_D);  // 文字数だけ右に移動
endsel;                   // 選択指定の終了
tozenkakuhira;            // 半角→全角の変換
escape;                   // 選択の解除
------------------------------------------------------------

以上ですが、「right strlen ($YTB_M_D);」がその通りには
動いてないようです。右端まで変換されてしまいます。

でも、とりあえず問題ないので、このまましばらく使っていようと
思います。

できれば、
------------------------------
searchdown $str;
get_select;         // 新命令
tozenkaku_suuji;    // 新命令
escape;
------------------------------
のように出来ると簡単ですが・・・

ほかに、簡単に出来るようでしたら、御指導ください。


[ ]
RE:13195 マクロで半角文字を全角文字に変No.13196
山紫水明 さん 02/10/26 17:13
 
 eunos800さん,こんにちは。

》さっそく指摘の通りにやったのですが、だめでした。

 もしかしたら,"今日、MM月DD日、"がファイル先頭にあるということはあ
りませんか?
 最初のマクロの finddown を finddown2 に変えたらどうなるか試してみてくだ
さい。

》golinetop;                // その文のある先頭にカーソルを移動
》searchdown $YTB_M_D;      // 文の位置をサーチ
》right 1;                  // カーソルを右に動いて
》left 1;                   // 左に動いて指定文の左側に移動
》beginsel;                 // 選択開始
》right strlen ($YTB_M_D);  // 文字数だけ右に移動
》endsel;                   // 選択指定の終了

いろいろ工夫されましたね(^^;

》以上ですが、「right strlen ($YTB_M_D);」がその通りには
》動いてないようです。右端まで変換されてしまいます。

  strlen は半角単位,right のパラメーターは文字単位ですので,うまくいかな
  い場合があります。

》ほかに、簡単に出来るようでしたら、御指導ください。

指導といわれると,ちょっと(^^;
一つの例として,

//------------------------------------------------------------------------
gofiletop;
replacedown "今日、MM月DD日、", "今日、" + month + "月" + day + "日、";
beginsel;
searchup "今日";
tozenkakuhira;
escape;
endmacro;
//------------------------------------------------------------------------

ではどうでしょう。

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

[ ]
RE:13196 マクロで半角文字を全角文字に変No.13197
eunos800 さん 02/10/26 18:36
 
山紫水明さん、今晩は、お世話になってます。

>"今日、MM月DD日、"がファイル先頭にある・・・
 ◆ファイルの中程です。

>最初のマクロの finddown を finddown2 に変えたら・・・
 ◆同じでした。


>//------------------------------------------------------------------------
>gofiletop;
>replacedown "今日、MM月DD日、", "今日、" + month + "月" + day + "日、";
>beginsel;
>searchup "今日";
>tozenkakuhira;
>escape;
>endmacro;
>//------------------------------------------------------------------------
>
>ではどうでしょう。

◆上記でうまくいきました。
 今後、半角→全角の変換を、上記の形式に統一したいと思います。

*「finddown/searchdown」などを実行すると、カーソルポインタが
 点滅表示の下側に来るという事ですね。そこで「beginsel」して
 上方検索/カーソルの選択移動するのですね。
 了解いたしました。

どうも色々と御指導、有難うございました、これで一段落できました。

[ ]