|
ノノムンさん,こんばんは。
》"行頭空白削除",
》"行末空白削除",
》"空白行削除",
》は出来たのですが、書いていただいたのと少し内容が違いますが、
》その違いが判りません。
メニューの部分を除いて考えてみます。
》replaceall "^[ \t]", "", regular;
》gofiletop; ← 不要
》replaceall "[ \t]$", "", regular;
》gofiletop; ← 不要
》replaceall "^[\\n]", "", regular; ← []は不要
》gofileend;
》insert " ";
上に示したように2個の gofiletop は不要です。全置換はカーソルがどこにあ
ってもかまいません。
[]は2個以上の文字がある場合に使います。この場合は改行文字1字だけです
ので不要です。
以上はあっても害にはなりませんが,余分だということです。
》0.000001 を 1u の例は 次の場合 0.00000123 を 1.23u
》にしなくてはなりません。
以下のようにしてみてください。
//----------------------------------------------------------------
replaceallfast "0\\.00000\\f[1-9]\\f[0-9]*", "\\1.\\2u", regular;
replaceallfast ".u", "u";
//----------------------------------------------------------------
》//----------------
》gofiletop;
》
》//この部分を「EOF」まで繰り返して
》//使いたいのですが、判りません。
》//{
》replacedown "0.000000000000","";
》golineend
》insert "p";
》replacedown "0.000000000","";
》golineend
》insert "n";
》replacedown "0.000000","";
》golineend
》insert "u";
》replacedown "0.000","";
》golineend
》insert "m";
》if( result == eof )
》//}
》
》
》//----------------
replacedown だけでは通常ファイル末尾までカーソルは行きません。
この方式でやるとすれば,次のようにする必要があります。
//-----------------------------------------------------//
gofiletop;
while( 1 ) {
replacedown "0.000000000000", "";
if( result == 0 ) break;
golineend
insert "p";
}
gofiletop;
while( 1 ) {
replacedown "0.000000000", "";
if( result == 0 ) break;
golineend
insert "n";
}
gofiletop;
while( 1 ) {
replacedown "0.000000", "";
if( result == 0 ) break;
golineend
insert "u";
}
gofiletop;
while( 1 ) {
replacedown "0.000", "";
if( result == 0 ) break;
golineend
insert "m";
}
endmacro;
//-----------------------------------------------------//
ちなみにタグ付き置換を用いれば次のようにもできます。
//-------------------------------------------------------------------//
disabledraw;
replaceallfast "0\\.000000000000\\f[1-9]\\f[0-9]*", "\\1.\\2p", regular;
replaceallfast "0\\.000000000\\f[1-9]\\f[0-9]*", "\\1.\\2n", regular;
replaceallfast "0\\.000000\\f[1-9]\\f[0-9]*", "\\1.\\2u", regular;
replaceallfast "0\\.000\\f[1-9]\\f[0-9]*", "\\1.\\2m", regular;
replaceallfast "\\.\\f[pnum]", "\\1", regular;
endmacro;
//-------------------------------------------------------------------//
#目がちらついて 0 の数があやしいかも知れません。(^^;
では, (^^)/~
山紫水明
|
|