数値データのカット&ペーストNo.18417
attic さん 04/11/25 20:51
 
数値データの入ったファイルで、

1. ()で囲まれた半角数字(例えば(2,004)のように、4桁以上
の場合に3桁区切りになったもの)を検索し、
2. これを逐次切り取ってクリップボードに積み込み、
3. 最後にファイル末尾にまとめて貼り付ける

という作業を行いたいと思っています。
所望の数値は、正規表現を使って

\([0-9]*,*[0-9]+\)

でヒットするのですが、上記作業のうち、2.以降を効率的に
行うにはどのようにしたらよいか、妙案がなく困っています。
どなたか、ご教示頂ければ幸いです。

attic

[ ]
RE:18417 数値データのカット&ペーストNo.18418
山紫水明 さん 04/11/25 22:06
 
 atticさん,こんばんは。

>1. ()で囲まれた半角数字(例えば(2,004)のように、4桁以上
>の場合に3桁区切りになったもの)を検索し、
>2. これを逐次切り取ってクリップボードに積み込み、
>3. 最後にファイル末尾にまとめて貼り付ける

「検索での表示」を「範囲選択」にしてください。必要であればこれ自体もマク
ロに組み込めます。
 あと,7桁以上の場合はどうするかという問題もありそうですが,
とりあえず,次のマクロを実行してみてください。

//-------------------------------------//
gofiletop;
while( 1 ) {
    searchdown2 "\\([0-9]*,*[0-9]+\\)", regular;
    if( result ) cut;
    else break;
    #i = #i + 1;
}
gofileend;
while( #i ) {
    poppaste;
    #i = #i - 1;
}
endmacro;
//-------------------------------------//

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:18418 数値データのカット&ペーストNo.18419
shino さん 04/11/26 10:06
 
> あと,7桁以上の場合はどうするかという問題もありそうですが,
>とりあえず,次のマクロを実行してみてください。

検索文字列を、
\([0-9]+(,[0-9]{3})*\)
にすれば出来そうです。
マクロに入れる場合は、\を\\にしてください。

[ ]
RE:18419 数値データのカット&ペーストNo.18421
秀丸担当 さん 04/11/26 17:50
 

[編集]→[追加切り抜き]を使えば、キー操作の記録と再生で簡単にすることがで
きると思います。
あらかじめ[動作環境]→[検索]で「検索での表示」を「範囲選択」にしておきま
す。
・キー操作の記録開始
・検索
・追加切り抜き
・キー操作の記録終了
としておき、あとはキー操作の再生を繰り返せば、クリップボードに溜まるので、
最後に手動で貼り付けとすればできます。

山紫水明さんの言われるようなマクロでもできると思います。
山紫水明さんのマクロの場合は、クリップボード履歴をONにしておく必要がある
と思います。

[ ]
RE:18421 数値データのカット&ペーストNo.18424
attic さん 04/11/26 20:42
 
山紫水明 さん、shino さん、秀丸担当 さん、こんばんは。
コメント有り難うございます。

皆様からご教示頂いた方法で、うまくゆきました(^^)。
実は、秀丸担当 さんご紹介の「「キー操作の記録と再生」も試し
ていたのですが、[動作環境]→[検索]で「検索での表示」を「範囲
選択」にしていなかったため、うまくゆきませんでした。
山紫水明 さんにアップして頂いたマクロも、この設定をしていな
いとうまくゆきませんでした。
# 上記の設定をしたら、うまくゆきました。

では、今後ともよろしくお願いいたします。

[ ]