マクロでの改ページ制御No.05715
kota さん 00/05/10 11:25
 
みなさん、はじめまして。KOTAと申します。
最近秀丸マクロを使い始めました。わからないことがあるので教えて
ください。

単純に次のようなテキストファイルがあります。
***********************************************************
あいうえお
かきくけこ
さしすせそ
たちつてと

1
あいうえお
かきくけこ
さしすせそ
たちつてと

1
あいうえお
かきくけこ
さしすせそ
たちつてと
***************************************************************
このようなファイルを印刷するときに、1バイト目に「1」があったら
かならずその上の行で改ページしたいのです。そのような制御は
マクロで可能でしょうか?できればかんたんなサンプルコードを
いただけたらと思います。
お忙しいとは思いますが、よろしくお願いします。


[ ]
RE:05715 マクロでの改ページ制御No.05716
番頭++ さん 00/05/10 12:19
 
こんな感じです ...

//*1    a1.mac
//  <== コメントです。
    if( updated ){  endmacro;   }   //  更新中は出来ません !!!
//  ヘルプの「検索」で「正規表現」を参照して下さい。
//  ^ 行の初めに 1 が在って 次が改行 \n で在れば ==> \x0C 改行に置き換える。
    replaceall "^1\\n", "\x0C", regular, ask;   //  ask, は確認です。
//  replaceall "^1\\n", "\x0C", regular;
//  replaceallfast "^1\\n", "\x0C\\n", regular; //  改行を生かす !!!
//  print;  //  印刷です。
    if( basename != "" ){   reopen; }   //  無題でなければ「最初からやり直し」
    gofiletop;
    setsearch "", 0x00; //  記憶にありません !
endmacro;

余談ですが、メインフレームとかのプリンタ制御コードの置き換えですか ???
    replaceall "^1", "\x0C\x20", regular;   //  改ページ
    replaceall "^0", "\\n\x20", regular;    //  改行 1
    replaceall "^-", "\\n\\n\x20", regular; //  改行 2
    gofiletop;
endmacro;

[ ]
RE:05715 マクロでの改ページ制御No.05718
きいろいまふらあ さん 00/05/10 13:11
 
>このようなファイルを印刷するときに、1バイト目に「1」があったら
>かならずその上の行で改ページしたいのです。そのような制御は

replaceallfast "^1","\\x0c1",regular;
endmacro;

というマクロを実行すると、行頭の1の直前に改ページコードを挿入します。
#でも多分ファイルの先頭の1は無視されちゃう。今回は結果オーライだけど。

もとに戻すには

replaceallfast ,"^\\x0c1","1",regular;
endmacro;

とすればよいでしょう。
#中途半端に厳密ですが。(^^;

[ ]
RE:05718 マクロでの改ページ制御No.05735
ひろ さん 00/05/11 19:49
 
 きいろいまふらあさん今日は、ひろです。
> replaceallfast "^1","\\x0c1",regular;
replaceallfast "^1$","\\x0c1",regular;
の方がよいのではないでしょうか?

> #でも多分ファイルの先頭の1は無視されちゃう。今回は結果オーライだけど。
 replaceallfast の場合 file の先頭でも問題ないはずです。位置が検索対
称にならないのは、searchdown だと思います。

[ ]
RE:05735 マクロでの改ページ制御No.05738
きいろいまふらあ さん 00/05/11 20:45
 
まふです。

>> replaceallfast "^1","\\x0c1",regular;
>replaceallfast "^1$","\\x0c1",regular;
>の方がよいのではないでしょうか?

実際はそうなのかもしれません。いやきっとそうなのでしょう。
最初はあまり状況がわからなかったので、

>1バイト目に「1」があったら
>かならずその上の行で改ページしたいのです。

これを忠実に再現したつもりだったのですが。
#ただの言い訳にしか読めない。(^^;

> replaceallfast の場合 file の先頭でも問題ないはずです。位置が検索対
>称にならないのは、searchdown だと思います。

おお。そうでした。間抜け。>自分

[ ]