|
stythさん,
> 折りたたんだ状態で、保存しても、次に開くと折りたたみが解除さています。
> 折りたたんだ状態で、開くにはどうすれば良いんでしょうか?
正式回答は後にお願いすることにして,次の二つのマクロをそれぞれ自動起動
マクロの「ファイルを閉じる直前」と「ファイルを開いた直後」に登録すれば,
いちおうできると思います。もっと改善の余地があるかもしれません。
「ファイルを閉じる直前」用
//------- ReserveFold.mac ------------------------------------------//
// 折りたたみ保存マクロ
$inifile = currentmacrodirectory + "\\fold.ini";
setcompatiblemode 0x0003;
$file = filename2;
disabledraw;
gofiletop;
while( code != eof ) {
if( folded ) {
#i = #i + 1;
writeinistr $inifile, $file, "start" + str(#i), str(lineno);
down;
writeinistr $inifile, $file, "last" + str(#i), str(lineno);
}
down;
if( !result ) break
}
//前の痕跡があった場合
if( #i == 0 ) {
writeinistr $inifile, $file, 0, 0;
endmacro;
}
while( getininum( $inifile, $file, "start" + str(#i + 1) ) > 0 ) {
writeinistr $inifile, $file, "start" + str(#i + 1), 0;
writeinistr $inifile, $file, "last" + str(#i + 1), 0;
}
endmacro;
//------------------------------------------------------------------//
「ファイルを開いた直後」用
//------- RestoreFold.mac ------------------------------------------//
// 折りたたみ復元マクロ
$inifile = currentmacrodirectory + "\\fold.ini";
$file = filename2;
#i = 1;
disabledraw;
while( 1 ) {
#start = getininum( $inifile, $file, "start" + str(#i) ) + 1;
if( #start == 1 ) break; //折りたたみなし
#last = getininum( $inifile, $file, "last" + str(#i) );
movetolineno 1, #start;
beginsel;
movetolineno 1, #last;
fold;
#i = #i + 1;
}
endmacro;
//------------------------------------------------------------------//
山紫水明
SANSHISUIMEI
|
|