複数文字の一括変換No.18368
コスモス さん 04/11/19 15:50
 
こんにちは。コスモスと申します。

質問させて頂きます。
grepの検索文字列で
「◎|センチ|`」を検索し
これを一括変換して、それぞれ以下
「◆」「センチ」「キロ」のようにしたいのですが、
どうすればよいのでしょうか?

今までは一つずつ変換をしていますが、大変時間がかかります。
たとえば一覧を用意して、それに基づいて変換できないでしょうか?
教えてほしいです。

一覧
◎,◆
センチ,センチ
`,キロ

お願いします。

[ ]
RE:18368 複数文字の一括変換No.18369
コスモス さん 04/11/19 16:03
 
補足です

「a」は記号文字のはずが大文字になってしましました。

一覧
◎→◆
a→センチ
`→キロ

秀丸 Ver 4.13

よろしくお願いします。

[ ]
RE:18368 複数文字の一括変換No.18371
秀丸担当 さん 04/11/19 18:12
 

>今までは一つずつ変換をしていますが、大変時間がかかります。
>たとえば一覧を用意して、それに基づいて変換できないでしょうか?
>教えてほしいです。

マクロを作成すれば、できます。
replaceallfast "◎","◆";
replaceallfast "a","センチ";
replaceallfast "`","キロ";
と書いたマクロでできます。

例えば、マクロファイル用のフォルダ(標準で秀丸をインストールしたフォルダ
の場合C:\Program Files\Hidemaru)に、test.macとして保存します。
[マクロ]→[マクロ実行]より、test.macを実行すれば、置換できます。

このマクロそのものを一覧と思えば、最もシンプルで分かりやすいと思います。

また、有志のマクロ作者によって作られたマクロが、ホームページにあるので、
そこから最適なマクロを探すのもいいとおもいます。
置換の一覧を作成して、一括で置換をしてくれるマクロもあると思います。

[ ]
RE:18369 複数文字の一括変換No.18381
ENCODINGSHIFTJIS さん 04/11/22 09:46
 
秀丸はテキスト処理の機能が豊富ですが
ここは、組み込みの便利機能はありません。
毎回固定の打字統一なら専用のソフトを探したほうがよいです。

少量のチョイ技なら、論理和検索+マクロ くらいです。

$ISTR="◎|a|`";// 入力文字表
$OSTR[0]="◆";   // 出力配列
$OSTR[1]="センチ";
$OSTR[2]="キロ";
//
gofiletop;
while(1) {
 searchdown $ISTR,regular; // 検索位置選択モード
 if(!result)break;
 copy2;
 beginclipboardread;
 $S=getclipboard;     // 一文字取り出し
 #X=strstr($ISTR,$S); // マッチ位置の文字を判別
 if(#X== -1)continue;
 insert $OSTR[#X/3];// バイト位置より
 escape;
  }

[ ]
RE:18371 複数文字の一括変換No.18392
コスモス さん 04/11/24 11:47
 
秀丸担当さま

返事が遅くなって大変失礼しました。


>マクロを作成すれば、できます。
>replaceallfast "◎","◆";
>replaceallfast "a","センチ";
>replaceallfast "`","キロ";
>と書いたマクロでできます。
>
>例えば、マクロファイル用のフォルダ(標準で秀丸をインストールしたフォルダ
>の場合C:\Program Files\Hidemaru)に、test.macとして保存します。
>[マクロ]→[マクロ実行]より、test.macを実行すれば、置換できます。
>
>このマクロそのものを一覧と思えば、最もシンプルで分かりやすいと思います。

こちらを使わせていただきます。
本当にシンプルで、とっても便利で、わかり易かったです。

ありがとうございました。

[ ]
RE:18381 複数文字の一括変換No.18393
コスモス さん 04/11/24 11:51
 
ENCODINGSHIFTJISさま

御丁寧に書いてくださいまして、ありがとうございます。
初心者の私にとっては、難しいかったです。
理解できるように頑張りたいです。
ありがとうございました。

>秀丸はテキスト処理の機能が豊富ですが
>ここは、組み込みの便利機能はありません。
>毎回固定の打字統一なら専用のソフトを探したほうがよいです。
>
>少量のチョイ技なら、論理和検索+マクロ くらいです。
>
>$ISTR="◎|a|`";// 入力文字表
>$OSTR[0]="◆";   // 出力配列
>$OSTR[1]="センチ";
>$OSTR[2]="キロ";
>//
>gofiletop;
>while(1) {
> searchdown $ISTR,regular; // 検索位置選択モード
> if(!result)break;
> copy2;
> beginclipboardread;
> $S=getclipboard;     // 一文字取り出し
> #X=strstr($ISTR,$S); // マッチ位置の文字を判別
> if(#X== -1)continue;
> insert $OSTR[#X/3];// バイト位置より
> escape;
>  }

[ ]