ファイル名を変更して自動保存したいのでNo.01795
オガタ さん 01/02/20 19:35
 
皆さんはじめまして
さっそくで申し訳ありませんが教えてください。

以下のような秀丸のマクロを作りたいのですが、
なにぶん素人なのでさっぱりわかりません。

テキストを入力時、テキストを入力しているファイル
とは別で一定時間(1〜5分間隔)で自動保存を行い、
なお且つファイル名も自動で付ける処理(連番で)
を作りたいのです。

例としてはこんな感じです。

○実際に入力しているファイル

-----ファイル名 original.text------
むかしむかし、あるところにおじいさん
とおばあさんがいました。おじいさんは
山に芝刈りに、おばあさんは川に洗濯に
行きました。
----------------------------------

○別で作成されるファイル

  〜〜5分経過〜〜
-------ファイル名 test1.txt--------
むかしむかし、あるところにおじいさん
----------------------------------
  〜〜5分経過〜〜
-------ファイル名 test2.txt--------
とおばあさんがいました。おじいさんは
山に芝刈りに、おばあさんは川に洗濯に
----------------------------------
  〜〜5分経過〜〜
------ファイル名 test1.txt---------
行きました。
----------------------------------

どうか教えてください、お願いします。

[ ]
RE:01795 ファイル名を変更して自動保存しNo.01796
ひろ さん 01/02/20 19:49
 
 オガタさん今日は、ひろです。
> とは別で一定時間(1〜5分間隔)で自動保存を行い、
> なお且つファイル名も自動で付ける処理(連番で)
 一定時間ごとにマクロを実行することが出来ませんし、マクロ実行中は基
本的にキーボードからの直接入力が出来ませんので、ご希望のマクロは出来
ないと思います。

[ ]
RE:01795 ファイル名を変更して自動保存No.01798
山紫水明 さん 01/02/20 21:24
 
 オガタさん,こんばんは。

》テキストを入力時、テキストを入力しているファイル
》とは別で一定時間(1〜5分間隔)で自動保存を行い、
》なお且つファイル名も自動で付ける処理(連番で)
》を作りたいのです。

 マクロを一定時間毎に自動実行させるのは多分できないと思います。
 それで,1行(改行まで)ずつ次々に保存するマクロを作ってみました。
 お望みのものとは違っていますが,一度試してみてください。
 1回実行するたびに1行が保存されます。

//------SerialSave.mac------------------------//
//  1行ずつファイルに保存
$body = leftstr(basename, strstr(basename, "."));
#last = linecount2;
#k = 1;
while(1){
    $serialfile = $body + str(#k)+ ".txt";
    if(existfile($serialfile)) #k = #k + 1;
    else break;
}
if (#k < #last){
    movetolineno 1, #k;
    beginsel;
    golineend2;
    copy;
    newfile;
    paste;
    saveas $serialfile;
    setactivehidemaru 1;
}else message "終わりです";
endmacro;
//--------------------------------------------//

     では, (^^)/~
                                        山紫水明

[ ]
RE:01798 ファイル名を変更して自動保存No.01799
encodingshiftjis さん 01/02/21 00:03
 

時間間隔による自動保存はありませんね(秀丸では)

似た動作タイプは  メニュー>その他>動作環境>自動保存>更新回数 です。

しかし、連番付きのファイル名はちょっと、保存イベントをキャッチしてマクロを
起動もできませんし。少し金がかかりますが、操作はWin的で頭を使わない
http://www.sourcenext.com/products/onzon/  は世代管理をします。監視を設定した
ファイル・フォルダの更新を捕らえて、差分を自動で取り、過去の世代に復元できます
.BAKファイルは不要になります。別の媒体にバックアップするほどは安全ではないが。
意図する結果は似たようなものかと思います。
−−−−
「ファイル連番付け+保存+適度に先頭行を削除」 のマクロは作れるが、スケジ
ュールに
よる起動は残念ながらできません、起動は人力デス。
保存もファイルでなく、横に一時保存用の秀丸面を開いておき、
そこに時々 cut&paste で途中入力文を移していってもよいと思います。マクロも簡
単です。
時間間隔で保存する機能のあるワープロを横に開いて、そこに時々 cut&paste すると
本当のスケジュール保存ができますが。(あいーん)
−−−−
社内の常時接続環境なら、メール起動で自分に送信すると保存ぽく使えます。
一時的な使用ならこんなのでも
−−−−
マクロ集の中にはフォルダ中のファイル名を全部見てから、最大値の次の連番の
ファイル名を発生して保存するマクロを見かけた事があった。
−−−−
時間間隔毎の区間で保存しないとダメか?最初の例ではそう見えるが。

世代保存も細かい動作について、議論の幅は広いです。

[ ]
RE:01795 大変参考になりました。No.01802
オガタ さん 01/02/21 09:52
 
皆さん
早速のお答え、ありがとうございました。
大変参考になりました。

一定時間毎に保存する処理はマクロでは作れないのですか…
皆さんにお答え頂き、納得することができました。

皆さんに教えていただいた情報を基に何か変わりになる処理
を考えてみます。

最後に本当にありがとうございました。

[ ]
RE:01802 大変参考になりました。No.01803
ENCODINGSHIFTJIS さん 01/02/21 11:51
 
>皆さんに教えていただいた情報を基に何か変わりになる処理
>を考えてみます。

どちらが重点の意図だったのでしょう、時間計測とも受け取れる面もあります。
段落入力後、時刻を表示した仕切り線を入れ&保存するマクロも作れます。
============== 何時何分 =================
仕切り線ならファイル数の増加を心配しなくてよいです

定時間隔が必要なら、タイマーアラームするソフトを起動して
その警告にしたがって、手動保存になるでしょう

[ ]