• 締切済み

秀丸エディタ 置き換え 加算

秀丸について素人です。 工作機械のNCデータの編集に使用しています。 変換リストを作り、マクロ登録して使っています。 例 W03. W40. アルファベット + 2ケタの数字 + ドット を W43. W80. など 40加算したいのです なんとなくですが現在 W([0-9][0-9])→W40+\1→r とやっても、結果は W40+03.  W40+40. などと出力されます。 どうすればW43. W80.と出力されるのでしょうか?

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

#1です。補足拝見しました。 失礼ですが、あなたがマクロといわれているものは、 マクロとしての構文を成しておりません。 以下の部分です。 ------------------------- (L-SPINDLE)→(L-SPINDLE) (VER.20130302)→(未検証 *は常に注意) M86→M32 G54→G55 M03→M55 ・・・(途中省略) ([XYZW][0-9]*\.|[XYZ]\-[0-9]*\.)000→\1→r ([XYZW][0-9]*\.|[XYZ]\-[0-9]*\.)([0-9])00→\1\2→r ([XYZW][0-9]*\.|[XYZ]\-[0-9]*\.)([0-9][0-9])0→\1\2→r ------------------------- マクロの構文は、必ずセミコロン(;)で終わります。 コメントの場合は、//で始まりますので、コメント行はセミコロンで終わる必要はありません。 上記の部分はマクロではないように見えます。(マクロが処理するデータかも知れません) このファイルは、拡張子(.mac)がついていますでしょうか? また、M86→M32 のような構文はマクロにはありません。(セミコロンをつけてもマクロとして正しくはなりません。) 従って、実際に変換するマクロがほかにあり、ここで提示されているのは、単なるコメント(若しくはマクロ実行時に処理するデータ)のように思われます。

odagakit121314
質問者

お礼

ありがとうございます。 私が操作していたのは、置き換えパターンの txtファイルでした。 同じフォルダにマクロのファイル .macがありました。 そちらに追加してみようと思っていますが、長いファイルに適当に挿入するのも恐ろしいですし、何とかマクロを作成された方に連絡を取ってみようと思います。 ありがとうございました。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

以下のようにしてください。 ---------------------- gofiletop; while(1){ searchdown "W[0-9][0-9]\.",regular if (result ==0) break; $str1 = gettext(x+1,y,x+2,y); #num = val($str1) + 4; $str2 = str(#num); right; delete; insert $str2; } ----------------------- Vwersion8.21で確認済みです。 尚、40を足した結果、2桁をオーバーフローした場合 については、仕様が提示されていませんので、3桁で出力するようにしています。 例 W61. の場合 40を足しますので W101.となります。(オーバーフローのケース)

odagakit121314
質問者

お礼

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

odagakit121314
質問者

補足

ありがとうございます。 マクロ実行 編集 (新規ファイルに教えていただいたマクロを登録) OK にすると+40になりました。 ありがとうございます。 実際の使用で、マクロ登録(マクロ実行ではない)して、名前を付けて保存し、その他の置き換えなどと一括して処理しています。 現在使用しているマクロに挿入して使ってみたのですが、Wの計算がなされません。 何か問題がありそうです。 (元のマクロ自体、私が作ったものではないので、あまり理解できていません) 以下参照 gofiletop; while(1){ searchdown "W[0-9][0-9]\.",regular if (result ==0) break; $str1 = gettext(x+1,y,x+2,y); #num = val($str1) + 4; $str2 = str(#num); right; delete; insert $str2; } //------ // リスト1.置換する文字列 // 凡例) //  c:大文字と小文字を区別 //  r:正規表現 //   ※正規表現使用時には、以下の記号が利用可能となる //   \n:正規表現 //   \t:タブ //   . :任意の一文字 //   * :任意の文字列の繰り返し //   \1:パターンマッチした文字列 //   ():グルーピング //   [0-9]:任意の0から9までの一桁の数字 //   [A-Z]:任意のAからZまでの一桁の文字 //  →:区切り文字(マクロ実行時のダイアログで指定) // 注意点) //  ・特殊文字にはエスケープシーケンスを付与する //   例:"."は"\." // VER.20130302 未検証 //------ (L-SPINDLE)→(L-SPINDLE) (VER.20130302)→(未検証 *は常に注意) M86→M32 G54→G55 M03→M55 M04→M55 M05→M55 M10→M50 M11→M51 M20→M420 M21→M421 M41→M441 M91→M491 M427→M428 M428→M427 M785.→M787. M703→M403 M704→M404 I3.→I*4. I2.→I*1. G41→@@10 G42→@@11 @@10→G42 @@11→G41 G02→@@12 G03→@@13 @@12→G03 @@13→G02 C-→@@1 C→@@2 @@1→C2= @@2→C2=- Z-→@@3 Z→@@4 @@3→Z @@4→Z- B-→@@14 B→@@15 @@14→B @@15→B- R-→@@16 R→@@17 @@16→R @@17→R- H0→H2=0 //------ // 共通:後処理 //------ //不要な0取り ([XYZW][0-9]*\.|[XYZ]\-[0-9]*\.)000→\1→r ([XYZW][0-9]*\.|[XYZ]\-[0-9]*\.)([0-9])00→\1\2→r ([XYZW][0-9]*\.|[XYZ]\-[0-9]*\.)([0-9][0-9])0→\1\2→r

関連するQ&A

  • 秀丸エディタのマクロのことで

    秀丸エディタ(Ver3.19)の置換で正規表現を用いても以下のことはできないと思います。 501~520までの数字を623~642に一括変換する。 そこで上記のようなことが可能なマクロを教えてもらいたいのですが。ようは置換元の範囲と置換後の範囲を指定することで、任意の数字に対して連番置換ができるマクロです。 ワードのVBAでも結構です(エクセルではダメですが)。 宜しくお願いします。

  • 秀丸エディタのマクロ整形

    秀丸エディタのマクロ整形 秀丸 整形&連続&引用マクロ Ver.2.15 作者 noro 1999/03/09 をダウンロードしました。 ●(Q01)使用されている方は、いますでしょうか? ●(Q02)このマクロ以外のマクロで、シェアウェア800円などのマクロがありますが、マクロ自体は、テキストファイルで生成されているので、これを指定のフォルダに挿入するだけです。中身やロジックも見ることができます。 ●(Q03)バイナリーファイル プログラムのように期限がくれば、使用できなくさせるとか使用禁止のメッセージを出力できるのでしょうか? ●(Q04)もし、できても、中身は、自由に閲覧できるテキストファイルなので、この機能をはずすか除外してしまえば、制限無く使用できることになるのでは、無いでしょうか? ●(Q05)このマクロに添付されている説明文は、提供のマクロを使用して整形したものでしょうか? ●(Q06)段落を整形した時、段落全体をインデントで、下げ桁折りします。しかし、段落頭だけ全体のインデントよりも、更に一字下げていますが、これは、どのようにかなえているのでしょうか? ●(Q07)逆に特定の文字がくれば、この文字だけを段落の頭部に出したいとかは、どのようにするのでしょうか?  下記のような文章の体裁を作りたいのです。 (1)あいみしとみらひらとひらにみれれけしけとひ   まにまのもりのまにらいにましものりも。 (2)にらならにせてまのりのとひみここみももそも   いすひはしひはしひしひしは。   ●とののもことこれりとこらせすこもしもこし    たていはすすぎののこのきここも。   ●たいてすきひはひもれりこきれりこきこけれ    ととしひこきはこきこきは。 敬具、

  • 秀丸のマクロ実行時に「バッファがオーバーしました。」というエラーが出ま

    秀丸のマクロ実行時に「バッファがオーバーしました。」というエラーが出ました。 秀丸で、マクロ → キー操作の読込からマクロを読込もうとした時に、下記のエラーが発生しました。 アルファベットの全角→半角変換.mac(47): バッファがオーバーしました。 マクロの内容は setcompatiblemode 0x0F; begingroupundo; replaceallfast "0" , "0"; から始まり replaceallfast "?" , "?"; if( ! result ) beep; endgroupundo 1; で終わるもので、全角のアルファベット、数字、一部の記号を半角に置換するだけのものです。 対象の文字は 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-*/():=&!? の全73文字で、47行目では I を変換しようとしています。 以前は問題なく動いていたと思うのですが、なぜか今はエラーが出ます。 現秀丸のVerは7.11 で、過去に動いていた時のVerは覚えておりません。 OSはWinXPです。 解決方法など教えていただければ幸いです。

  • 秀丸のマクロについて

    すみません。。検索してもなかなか見つからないので詳しいかたどうぞ教えてくださいませんでしょうか(/_;)?? 秀丸のマクロで下記のようなHTMLの編集をしたいのですが 「◎◎◎◎◎」部分はそれぞれ異なる文字列が入ります。 マクロ上「◎◎◎◎◎」には正規表現でなんと入れればいいのでしょうか?? ------------------------------------------------------------ question "変換しますかっ?"; if(result ==yes ){ replaceallfast "<span class=\"★\"><strong>◎◎◎◎◎</strong></span><br>" , "<p class=\"★\"><strong>◎◎◎◎◎</strong></p>"; message "変換しました。"; } ------------------------------------------------------------ どうぞよろしくお願いいたします(T_T)

  • エディタの連続変換について

    通常使用しているエディタはサクラエディタと秀丸ですが、 文章の定型変換を自動化させたく「変換リストによる連続置換 Ver.3.00 - 秀まるおのホームページ」 を使ってみたのですが、正規表現と通常の置換えが混在しているリストではうまく変換できませんでした。 正規表現と正規表現ではない普通の置換えをリストにしたものを自動で連続変換してくれるマクロ的なものを持っているエディタまたはアドオン的なものがあったら知りたいのです。 変換例を示すと ^○○\nを削除 ○○Xを○Xに置換え ^\nを削除 YY\nを削除 このような組み合わせが15組程あり、年に数回内容が変更されます。 これを置換えで手作業で行っています。 (変換例は秀丸の正規表現で記載しました) 秀丸やサクラエディタにこだわらずにこのような作業を自動化できたらと思っています。 ちなみに変換文章は多いときは4000行程度少ないときで500行程度です。

  • 16進法計算を一括して

    テキストファイルに書き出した16進数の数字を加算したいのですが、そのようなソフト、あるいは秀丸などのマクロなどでありませんか。

  • 32bit環境で64bit演算

    秀丸マクロ、プログラム初心者です。 秀丸マクロでunsigned _int64(20桁)の数値文字列の引き算をしたいのですが、うまくいきません。 秀丸で扱えるのがint(10桁)のため、文字列を単純に数値変換して計算ががきません。 20桁の文字列を2桁、9桁、9桁の3ブロックに分けて、unsigned _int64のロールオーバーや桁上がり(ブック上がり)を考慮しながらブロックごとに引き算をし、文字列に戻しているのですが、計算結果が期待通りになりません。 秀丸でのよい方法、または秀丸ではなくとも、上記と同じことをしているソースなどあれば教えていただけると幸いです。 ちなみに職場環境でインストール制限等がありできれば秀丸がよいのです。

  • 有効数字

    機械系の計算で油圧ポンプに105W必要で、電動機の出力をいくらにするかの計算で、全効率は0.78として、 ポンプの出力 = 電動機の出力 × 全効率 電動機の出力 = ポンプの出力 ÷ 全効率 電動機の出力 = 105 ÷ 0.78 電動機の出力 = 134.615 ここでアクシデントなのですが、このとき0.78が有効数字2桁なので 130Wにするのか、普段どおり有効数字3桁で135Wにするのかは・・・ 普通はどうしますか?

  • 日立精機VM40のワーク原点設定について

    この春より、マシニンクセンターを使い始めた初心者です 機械は日立精機のVM40という古めの機種です。 加工品のNCプログラムでG54とG55を使っており G54のX値に100を加算する加工品と105を加算する品物を 一日に数回加工する必要があり、その都度、手入力で入力してます。 ワーク原点 G54に入っているX,Y,Zの数値を決められた数字を加算して G55に設定するようなNCマクロプログラムは作成できるのでしょうか?

  • nc機械メモリ内のデータに直接アクセスしたいんです

    はじめて利用させていただきます。 当社でのnc工作機械(主にFANUC)は全てLANで接続されており、データの転送は[パンチ]、[リード]によって行われています。現在では、一旦機械メモリに読み込んだデータを大幅に編集する際、サーバーPCに転送→PC上で編集→nc機で再読込といった複数の手順が必要になります。そこで、ノートpcとnc機を直接接続しnc機械メモリ内のデータに直接アクセスして編集できるような、素敵なツールは無いものでしょうか?お知恵をおかし下さいませ。