複数文字の同時置換?No.06519
W.Hiroshi さん 11/02/05 16:51
 
お世話になっています。

WIN-7
秀丸(統合版)Ver8.02

秀丸のマクロでこのようなこと出来ますか。

下記のサンプルのようなNCデータがあったとします。
実際は一つのファイルがもう少し大きいのですが

あらかじめ範囲選択した中から(範囲選択がない場合は全文)、
丸括弧()の中の文字を抜き出して、
最初と最後の「-」の文字を省いて『T15-18.0-RF-ED』のような文字列の一覧を作る。
全く同じ内容の文字列が複数回出てくることがあるので、複数あった場合は一つだけ
残して省略する。


T15-18.0-RF-ED
T16-16.0-ED
T28-CT

出現数は最大30行程度

それぞれの行ごとに、その右側に『=』で区切るとか入力用のボックスを設けるなど
して数字を入力できるようにして、

T15-18.0-RF-ED =T[01]
T16-16.0-ED  =T[02]
T28-CT   =T[03]

のように任意の数値を入力([]の記号は不要)して『OK』ボタンを押すなどすると
元のNCデータ中の『T+2桁の数字』の部分全てを一気に置換する。

T01-18.0-RF-ED
T02-16.0-ED
T03-CT

となるように。

更に『H15』のように『H+2桁の数字』の部分も、数字の部分だけ一覧で入力した
『T』の数字と同じ数字に置換する。
更に『D45』のように『D+2桁の数字』の部分を、『Tの数字 + 30 』となる数字に
置換する。

そもそも、複数のデータを入力して、一気に置換処理するようなことは出来る物なの
でしょうか。
もちろん処理自体は一つずつ順番に処理していく物でかまわないのですが。
説明が下手で、分かりにくいかも知れませんがよろしくお願いします。

サンプルデータ

O1000
M98P98
T15M06
T16

N10(-T15-18.0-RF-ED-)
G54G90G00X910.0Y65.0S940
G43Z30.0H15
M13
Z3.0
G01Z-30.0F2000
G41X895.0D45F200
Y-65.0
G00Z30.0
G40M15
N19M98P99
M01
T16M06

N20(-T16-16.0-ED-)
G54G90G00X905.0Y65.0S1200
G43Z30.0H16
M13
Z3.0
G01Z-25.0F2000
G41X895.0D46F200
Y-65.0
G00Z30.0
G40M15
N29M98P99
M01
T28M06
M00T30

N30(-T28-CT-)
G54G90G00X960.0Y0S500
G43Z30.0H28
M03
Z3.0
G01Z0F2000
X-65.0F300
G00Z30.0
M15
N39M98P99
M01
T30M06
T15
M30


[ ]
RE:06519 複数文字の同時置換?No.06520
山紫水明 さん 11/02/06 08:49
 
 W.Hiroshiさん,
 拙作のマクロで恐縮ですが,マクロライブラリにある「変換リストによる連続
置換」は使えませんか。次のような変換リストを用意します。

T15,T01
T16,T02
T28,T03
・・・
H15,H01
H16,H02
H28,H03
・・・
D15,D31
D16,D31
D28,D33

 題意をとり違えていたらご容赦ください。

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

[ ]
RE:06520 複数文字の同時置換?No.06521
W.Hiroshi さん 11/02/06 20:54
 

山紫水明 さんコメント有り難うございます。
いつもお世話になっています。

紹介して頂いたマクロをダウンロードして試してみました。
何となく希望が見えてきた気がします。

以前、ここで教えて頂いた、丸括弧()の中の文字を抜き出して一覧を表示するマクロ
が有りましたので、
それを少し改良して[変換リスト]を作成、そこに変換データを入力後、「変換リス
トによる連続置換」を使わせて貰って変換処理をするという2段構えで、かなり希望
に近い動作をさせることが出来る様な気がしてきました。

とりあえず、二つのマクロを使うと言うことで進めてみようと思うのですが
また質問させて頂くかも知れませんのでよろしくお願いします。

[ ]