- ベストアンサー
秀丸エディタのマクロ整形
- 秀丸エディタのマクロ整形についての質問です。
- マクロの使用方法や制限について教えてください。
- 特定の文字や段落を整形する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
A1.自分は使ったことがありません。 A2.質問はなんでしょうか? A3.改竄が簡単にできてしまいますが可能かと思います。 A4.秀丸マクロのみでは無制限で使用できてしまいます。 対応としては「DLL呼び出し機能」を使用し、外部にメイン処理を持たせるなどして使用制限を行うのがいいのではないでしょうか。 A5.わかりません。綺麗に整形されているので使用している可能性は高そうですが記述はありませんね。 A7.このマクロにはそのような機能はなさそうです。
その他の回答 (2)
- sunup
- ベストアンサー率57% (4/7)
No.1です。 > これは、フリーフォーマットで、文頭、文中には、半角のスペースをいくらで >も、いれても良いようになっているのでしょうか? 秀丸マクロの予約語や関数名の途中でなければどこにでも入れることが可能です。 >ラベルは、以下のように表現するのでしょうか? > AC: moveto #aO,#Ao; マクロヘルプにあるように下記になっています。 「ラベルは、適当な英数字が指定できます。 ラベルであることが分かるように後ろにコロンを付けください。コロンの後ろにセミコロンは必要ありません。」 > 命令文の中に、同じラベルが、二重にあるとエラーになりますか? エラーになります。 > ラベルは、 大文字と小文字は、区別されるようになっているのでしょうか? 区別されません。 > while(1){ ##aa=##aa+linelen; > if (##aa>#ai) {##aA=0; > break; >} golineend; > > 上記のマクロは、{}によって、ネストを形成しているのでしょうか? そうです。{}でブロック化を行っています。 上記だと「{」が一個多いか、「}」が一個足りてませんね。 質問者さんは秀丸エディタマクロヘルプをご存知ですか? かなりの例文があり、とても参考になりますよ。
お礼
マクロのこと、まるで知らないのにいろいろ教えていただきありがとうございます。 マクロは、組む機会があるかどうかは、分かりませんが、マクロを理解できると、自分で、変更するとか、きっと、参考になることが、ありそうです。 改行を挿入して実行したらうまく、動きました。ありがとうございます。 マクロは、インタープリターのように、1文1文を機械語に翻訳して実行していくようです。コンパイルできると実行速度は、速くなるのでは、ないかと思料しますが、実現することが、困難な何かがあるのでしょうか?
補足
■sunupさん、そして、皆さん、こんにちは。いつも回答頂きありがとうござい ます。 秀丸エディタ マクロのことを色々教授いただきました。 また、マクロを作るには、いたりませんが、マクロの事を知って、人のマク ロを修正して、目的をかなえることが、できました。 秀丸エディタを利用すると、いろいろな事ができて、とても、便利ですね。 これからも、このエディタの事の研究をすすめたい。 今回は、これで、締め切ります。また、別のことで、質問することがあるか も、知れません。今後とも、たとえ、一つだけでも、お知りのことが有りまし たら、よろしく教授方お願いします。 敬具
- sunup
- ベストアンサー率57% (4/7)
No.1です。 >; というのが、マクロ文の文末記号ですが、これを >; プラス 改行コード >に置換するのには、どうしますか? まず、対象のファイルを秀丸で開きます。 そして、メニュー 検索⇒置換⇒置換ウィンドウを開きます。 検索のテキストフィールドに下記を入力 ; 置換のテキストフィールドに下記を入力 ;\n 正規表現のチェックを入れて、全置換ボタンを押下します。 ソース上の文字列中に;がある場合は見難くなりますが、これでいけるかと思います。
お礼
さっそく、レスありがとうございます。 解説の事、早急に試してみます。 うまくできるととても、嬉しいです。
補足
置換の方法 レスありがとうございます。 置換の方法について、教えていただきました。 やってみて、うまく、行ったようです。後は、二通りで、やってみて、同じように動作するか試して見ます。 マクロ文章内に ; の文字は、無く、この心配は、なくなりました。 行頭に 半角スペースを入れてある文と入れてない文があります。 これは、フリーフォーマットで、文頭、文中には、半角のスペースをいくらでも、いれても良いようになっているのでしょうか? ラベルは、以下のように表現するのでしょうか? AC: moveto #aO,#Ao; 命令文の中に、同じラベルが、二重にあるとエラーになりますか? ラベルは、 大文字と小文字は、区別されるようになっているのでしょうか? AC: moveto #aO,#Ao; ac: moveto #aO,#Ao; 上記の二つのラベルは、区別されるようになっているのでしょうか? while(1){ ##aa=##aa+linelen; if (##aa>#ai) {##aA=0; break; } golineend; 上記のマクロは、{}によって、ネストを形成しているのでしょうか? マクロのことが、よく分からず、学びたいと希望していますので、よろしく教授方お願いします。
お礼
貴重な時間を割愛いただき、レスありがとうございます。 ダウンロードしていただき、試用していただきました。 整形マクロ試食版というソフトでは、外部のメイン処理を施さず、改行を挿入しないで、長い一つの文にして、処理速度を低下させる。 変数名を変えて、変数名の意味が分からないようにしているというものです。 ; というのが、マクロ文の文末記号ですが、これを ; プラス 改行コード に置換するのには、どうしますか? 改行コードは、文字ではないので、正規関数を使用するのでしょうか? 印刷して詳しく解読して見ます。