こういうマクロありますか?No.02501
rako さん 01/10/12 22:09
 
いつも、お世話様です。

1.新規のファイルを名前を付けて保存する際、テキストの先頭の
  一部が既定値として、ファイル名になるようなマクロはありま
  せんか?
2.修正行はカラー表示されて調子がよいのですが、ctrl+s等で保
  存すると、色が普通に戻ってしまいます。そのままの状態にす
  ることはできませんか。そういう設定がないかみてみましたが
  ないようです。マクロで可能ですか?

よろしくお願いします。

[ ]
RE:02501 こういうマクロありますか?No.02502
TAKA さん 01/10/12 22:57
 
TAKA です。

>1.新規のファイルを名前を付けて保存する際、テキストの先頭の
>  一部が既定値として、ファイル名になるようなマクロはありま
>  せんか?

gettext,saveasを使えば出来るのですが、ファイル名として使えな
い文字があった時にどうするかなど問題がありますので、ファイル
名は自分で決めた方が安全だと思います。


>2.修正行はカラー表示されて調子がよいのですが、ctrl+s等で保
>  存すると、色が普通に戻ってしまいます。そのままの状態にす
>  ることはできませんか。そういう設定がないかみてみましたが
>  ないようです。マクロで可能ですか?

編集行の行番号のことでしょうか?
もしそうなら、「動作環境→ウィンドウ→編集した行の表示方法」
に「保存したら消す」というチェックボックスがあるので、OFFに
すればよいと思います。

[ ]
RE:02502 こういうマクロありますか?No.02504
Arimac さん 01/10/12 23:29
 
>>1.新規のファイルを名前を付けて保存する際、テキストの先頭の
>>  一部が既定値として、ファイル名になるようなマクロはありま
>>  せんか?
>
>gettext,saveasを使えば出来るのですが、ファイル名として使えな
>い文字があった時にどうするかなど問題がありますので、ファイル
>名は自分で決めた方が安全だと思います。

確か、MSワードがrakoさんの言ってるようなことを
やってたと思います(^^;
意外に便利でした(^^;

[ ]
RE:02504 こういうマクロありますか?No.02505
杉浦 まさき さん 01/10/13 00:42
 
>>>1.新規のファイルを名前を付けて保存する際、テキストの先頭の
>>>  一部が既定値として、ファイル名になるようなマクロはありま
>>>  せんか?
>>gettext,saveasを使えば出来るのですが、ファイル名として使えな
>>い文字があった時にどうするかなど問題がありますので、ファイル
>>名は自分で決めた方が安全だと思います。
>確か、MSワードがrakoさんの言ってるようなことを
>やってたと思います(^^;
>意外に便利でした(^^;

個人的にはひろさんの意見に賛成なんですが(笑)、
敢えて作るなら以下のような感じですかねぇ…。

//---------------------------------------------------------
// $DEFAULT_EXT = ".txt";
$DEFAULT_EXT = ""; // デフォルトの拡張子(これはつけない設定)
$DISABLED_CHARS = "<>:\"/\\|?*"; // ファイル名として使えない文字
#MAX_PATH = 259 - strlen($DEFAULT_EXT); // パス名の最大長

// 新規作成でなければ終了
if (filename != "") endmacro;

disabledraw;
disableinvert;

// ファイルの一行目の取得
##x = x;  ##y = y;
gofiletop;
beginsel;
golineend;
$$str = gettext(seltopx,seltopy,selendx,selendy);
escape;
moveto ##x, ##y;

// ファイル名のチェック
##s_len = strlen($$str);
while (##a < ##s_len && ##len < #MAX_PATH) {
    $$c = midstr($$str,##a,1);
    if (ascii($$c) >= 0x7F) {
        //  2バイト文字
        if (##s_len - ##a > 1) {
            $$f_name = $$f_name + midstr($$str,##a,2);
            ##len = ##len + 2;
        }
        ##a = ##a + 1; // あとでもう一度インクリメント
    } else if (strstr($DISABLED_CHARS,$$c) == -1) {
        // 使えない文字があったら全角にしたりとか
        // 考えられんこともないけど(^^;
        // 面倒なので今回は単純に削除
        $$f_name = $$f_name + $$c;
        ##len = ##len + 1;
    }
    ##a = ##a + 1;
}

// "CON" とか "PRN" とかの予約名でないことの
// チェックが必要だが…今回はパス

// 名前付けダイアログの表示
changename $$f_name + $DEFAULT_EXT;
SAVEAS;
if (!result) changename "";
endmacro;
//---------------------------------------------------------



[ ]
RE:02502 こういうマクロありますか?No.02506
ひろ さん 01/10/13 00:53
 
 rako さん、TAKA さん今日は、ひろです。
> gettext,saveasを使えば出来るのですが、ファイル名として使えな
> い文字があった時にどうするかなど問題があります
 この手の文字は日本なら、全て全角に変えてしまうという手も有ります。
しかし「どのフォルダに保存するか?」「すでに同じファイルが存在する場合
は?」等の情報を頂かないと、マクロの書きようが...。

[ ]
RE:02505 こういうマクロありますか?No.02507
Arimac さん 01/10/13 00:58
 
私も作ってみました(^^;
ファイル名に使えない文字は自己責任で・・・(^^;

#save_x = x;
#save_y = y;

gofiletop;
while (code != eof) {
    if (code != 0x0D) {
        $title = gettext(0, y, linelen, y);
        while (strlen($title) > 0) {
            $ch = leftstr($title, 1);
            if ($ch == " " || ascii($ch) == 0x09) {
                $title = rightstr($title, strlen($title) - 1);
            } else {
                if (strlen($title) < 2) break;
                $ch = leftstr($title, 2);
                if ($ch != " ") break;
                $title = rightstr($title, strlen($title) - 2);
            }
        }
       
        if (strlen($title) > 0) {
            $dir = directory;
            if (rightstr($dir, 1) != "\\") {
                $dir = $dir + "\\";
            }
           
            $title = input("以下のファイル名で保存します",
                $dir + $title + ".txt");
            #ret = result;
            if (#ret == 0 || $title == "") break;
           
            saveas $title;
            break;
        }
    }
    golineend;
    right;
}
moveto #save_x, #save_y;
endmacro;

[ ]
RE:02502 こういうマクロありますか?No.02508
rako さん 01/10/13 08:59
 
TAKAさん、こんにちは。

>gettext,saveasを使えば出来るのですが、ファイル名として使えな
>い文字があった時にどうするかなど問題がありますので、ファイル
>名は自分で決めた方が安全だと思います。
了解しました。


>編集行の行番号のことでしょうか?
>もしそうなら、「動作環境→ウィンドウ→編集した行の表示方法」
>に「保存したら消す」というチェックボックスがあるので、OFFに
>すればよいと思います。

すみません。見落としていました。

[ ]
RE:02504 こういうマクロありますか?No.02509
rako さん 01/10/13 09:00
 
Arimacさん、こんにちは。

>確か、MSワードがrakoさんの言ってるようなことを
>やってたと思います(^^;
>意外に便利でした(^^;

私は結構この機能があることで重宝しています。

[ ]
RE:02505 こういうマクロありますか?No.02510
rako さん 01/10/13 09:01
 
杉浦 まさきさん、こんにちは。

>個人的にはひろさんの意見に賛成なんですが(笑)、
>敢えて作るなら以下のような感じですかねぇ…。

ありがとうございます。早速使わして頂きます。

[ ]
RE:02507 こういうマクロありますか?No.02511
rako さん 01/10/13 09:01
 
Arimacさん、こんにちは。

>私も作ってみました(^^;

ありがとうございます。早速使わして頂きます。


[ ]
RE:02506 こういうマクロありますか?No.02512
rako さん 01/10/13 09:02
 
ひろさん、こんにちは。

>> gettext,saveasを使えば出来るのですが、ファイル名として使えな
>> い文字があった時にどうするかなど問題があります
> この手の文字は日本なら、全て全角に変えてしまうという手も有ります。
そうできれば、幸いです。

>しかし「どのフォルダに保存するか?」「すでに同じファイルが存在する場合
>は?」等の情報を頂かないと、マクロの書きようが...。
名前付けダイアログの表示していただければ、フォルダはそこで選択すれば良いし、
同じファイルが存在する場合は、もし誤って保存をかけた場合は「上書きしますか」
と聞かれるので良いと思います。でも、もしかもして、名前付けダイアログの表示時に
好きなフォルダをマクロで指定できるんですか?

[ ]
RE:02511 こういうマクロありますか?No.02513
Arimac さん 01/10/13 14:31
 
私のは杉浦さんのとは違って同じファイル名のファイルが
あると無条件上書きしてしまいますm(_ _)m
(saveasは初めて使ったので(^^;)

それとドキュメントの見出しは上に空行を入れたり
左にtabやスペースがあったりするので、
その対策もしてあります。

杉浦さんのと合成するとより良いマクロができると
思います(^^;

[ ]
RE:02512 こういうマクロありますか?No.02515
ひろ さん 01/10/13 16:07
 
 rakoさん今日は、ひろです。
> 名前付けダイアログの表示時に
> 好きなフォルダをマクロで指定できるんですか?
 既に解決されていると思いますが、杉浦さんの投稿のように、changename
と SAVEAS を使えばよいでしょう。

[ ]
RE:02515 こういうマクロありますか?No.02517
rako さん 01/10/13 16:26
 
ひろさん、今日は。
>> 名前付けダイアログの表示時に
>> 好きなフォルダをマクロで指定できるんですか?
> 既に解決されていると思いますが、杉浦さんの投稿のように、changename
>と SAVEAS を使えばよいでしょう。

ありがとうございます。でもマクロでフォルダを指定しておいて、
指定したフォルダをいきなり表示というわけにはいかないんですよね。


[ ]
RE:02517 こういうマクロありますか?No.02520
ひろ さん 01/10/13 18:29
 
 rako さん今日は、ひろです。
> でもマクロでフォルダを指定しておいて、
> 指定したフォルダをいきなり表示というわけにはいかないんですよね。
 こうなると、田楽 DLL など外部ツールと連携して、ということになります。

[ ]
RE:02520 こういうマクロありますか?No.02521
rako さん 01/10/13 20:31
 
ひろさん、こんばんは。
>> でもマクロでフォルダを指定しておいて、
>> 指定したフォルダをいきなり表示というわけにはいかないんですよね。
> こうなると、田楽 DLL など外部ツールと連携して、ということになります。

ということですね。ありがとうございます。

[ ]
RE:02521 こういうマクロありますか?No.02522
杉浦 まさき さん 01/10/14 00:18
 
rako さん、ひろさん、こんばんは。
杉浦 まさき です。

>>> でもマクロでフォルダを指定しておいて、
>>> 指定したフォルダをいきなり表示というわけにはいかないんですよね。
>> こうなると、田楽 DLL など外部ツールと連携して、ということになります。
>ということですね。ありがとうございます。

田楽DLLを使ってもいいんですが(笑)、
いつも同じフォルダでよいなら前回のマクロの
最後の方の changename の引数(ファイル名を変えている部分)を
以下のようにすれば、最初に表示されるフォルダが
指定したフォルダになります。
changename "C:\\My Documents\\" + $$f_name + $DEFAULT_EXT;
           ^^^^^^^^^^^^^^^^^^^^
             保存先フォルダ名

[ ]
RE:02522 こういうマクロありますか?No.02523
rako さん 01/10/14 09:08
 
杉浦 まさきさん,こんにちは

>changename "C:\\My Documents\\" + $$f_name + $DEFAULT_EXT;

ありがとうございます。やってみます。

[ ]