保存先指定 マクロNo.10321
RED さん 01/11/15 10:45
 
皆様、お世話になっております REDです

二つ目の 質問でございますが、保存先の指定マクロの方法を教えてください
 
秀丸キー操作で 作ろうとしましたが できませんでした

具体的には Aファイル 

C:\Documents and Settings\red\デスクトップ\siika6\kana
で開いた ファイルを 処理してから保存先を

C:\Documents and Settings\red\デスクトップ\siika6
とします。

で まず、できた 元ファイルを保存した後

また修正をかけたものを
C:\Documents and Settings\red\デスクトップ\siika6\shusei

に同じファイル名で保存します

とのような 感じで やっているのですが このファイルのやりとりをマクロででき
ればと思ってます

ライブラリの中のデスクトップの保存と 還元 を使えばできるのでしょうかと思っ
てましたが  勘違いのような気もするので ご指導お願いします




[ ]
RE:10321 保存先指定 マクロNo.10327
山紫水明 さん 01/11/15 20:05
 
 REDさん,こんばんは。

》二つ目の 質問でございますが、保存先の指定マクロの方法を教えてください

 もし,保存用フォルダが shusei に決まっているようでしたら,

//-------------------------------------------------//
changename directory + "\\shusei\\" + basename2;
save;
endmacro;
//------------------------------------------------//

でいかがでしょう。

》ライブラリの中のデスクトップの保存と 還元 を使えばできるのでしょうかと
》思ってましたが  勘違いのような気もするので ご指導お願いします

 そうですね。これは別のことをやるものです。

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

[ ]
RE:10327 保存先指定 マクロNo.10328
RED さん 01/11/15 21:25
 
   山紫水明さん,こんばんは。redです
> もし,保存用フォルダが shusei に決まっているようでしたら,
>
>//-------------------------------------------------//
>changename directory + "\\shusei\\" + basename2;
>save;
>endmacro;
>//------------------------------------------------//
>
>でいかがでしょう。
これはいけました
有り難うございました

でもうひとつ これは一つ階層をプラスするマクロだと思いますが
逆に 一つ階層を上に上げるのは これをどう修正すればいいでしょうか
宜しくお願いします
>     では, (^^)/~
>                                    

[ ]
RE:10328 保存先指定 マクロNo.10329
山紫水明 さん 01/11/15 22:51
 
 REDさん,こんばんは。

》でもうひとつ これは一つ階層をプラスするマクロだと思いますが
》逆に 一つ階層を上に上げるのは これをどう修正すればいいでしょうか

 それでは二つまとめてみます。

     では, (^^)/~
                                        山紫水明
//-------------------------------------------------//
menu "親フォルダに保存",
     "修正フォルダに保存";
#r = result;
if( #r == 0 ) endmacro;
if( #r == 2 ) goto SaveShusei;
call GetParentFolder;
$pfolder = $$return;
changename $pfolder + "\\" + basename2;
goto End;

SaveShusei:
changename directory + "\\shusei\\" + basename2;

End:
save;
endmacro;

GetParentFolder:    //親フォルダ名の取得
$$dir = directory;
##length = strlen( $$dir );
##i = 1;
while( 1 ) {
    if( midstr( $$dir, ##length - ##i, 1 ) == "\\" ) break;
    ##i = ##i + 1;
}
$$dir = leftstr( $$dir, ##length - ##i );
return $$dir;
//------------------------------------------------//

[ ]
RE:10329 保存先指定 マクロNo.10334
RED さん 01/11/15 23:38
 
> 山紫水明さん,REDです こんばんは。

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

[ ]
RE:10329 保存先指定 マクロNo.10341
TAKA さん 01/11/16 11:53
 
TAKA です。

>GetParentFolder:    //親フォルダ名の取得

「C:\A表A\test.txt」のように「\」コードを含む2バイト文字が
ある場合に正常に動作しません。

http://win.blue.co.jp/~jr-kun/hidemaru_qa/qa_hmm_2.html#HMM0074A
にある、「●文字列の後方から文字列を検索」を使用する必要があ
ります。

[ ]
RE:10341 保存先指定 マクロNo.10364
山紫水明 さん 01/11/16 20:41
 
 TAKAさん,こんばんは。体調好ましからぬ時にわざわざコメントいただき恐縮で
す。

》「C:\A表A\test.txt」のように「\」コードを含む2バイト文字が
》ある場合に正常に動作しません。

$$dir = "C:\\\A表A\\test.txt";
##length = strlen( $$dir );
##i = 1;
while( 1 ) {
    if( midstr( $$dir, ##length - ##i, 1 ) == "\\" ) break;
    ##i = ##i + 1;
}
$$dir = leftstr( $$dir, ##length - ##i );
message $$dir;
endmacro;

とやっても,$$dir には「C:\A表A」が入り,この限りでは問題ないように見えま
すが,そういうことではないのですか?

     では,お大事に。(^^)/~
                                        山紫水明

[ ]
RE:10364 保存先指定 マクロNo.10371
TAKA さん 01/11/16 22:58
 
TAKA です。

例が悪かったです。

$$dir = "C:\\test\\表.txt";

で試してみて下さい。「表」に「\」が含まれるためおかしくなり
ます。

#まだ、頭が痛い。

[ ]
RE:10371 保存先指定 マクロNo.10372
山紫水明 さん 01/11/17 09:49
 
 TAKAさん,こんにちは。お加減はいかがですか?

》$$dir = "C:\\test\\表.txt";
》で試してみて下さい。「表」に「\」が含まれるためおかしくなり
》ます。

なるほど,理解できました。
Q&Aのサンプルマクロでうまくいきますか?
"\"が2バイト文字の一部か独立しているかの判定はややこしそうです。
とりあえず,次のようにしてみました。多分,もっと,スマートな方法があると思
いますが。

$$dir = "C:\\test\\表.txt";
##length = strlen( $$dir );
##i = 1;
while( 1 ) {
    if( midstr( $$dir, ##length - ##i, 1 ) == "\\" ) {
        ##i = ##i + 1;
        $$i = midstr( $$dir, ##length - ##i, 1 );
        if(strstr( "シャフワ", $$i ) > -1 ) break;
        if( ascii( $$i ) > 0x80 ) continue;
        else break;
    }
    ##i = ##i + 1;
}
$$dir = leftstr( $$dir, ##length - ##i + 1 );
message $$dir;
endmacro;

》#まだ、頭が痛い。

余計に頭を痛くさせてしまったのかも。<m(__)m>

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

[ ]
RE:10372 保存先指定 マクロNo.10373
きいろいまふらあ さん 01/11/17 12:29
 
横から失礼します。

>"\"が2バイト文字の一部か独立しているかの判定はややこしそうです。
>とりあえず,次のようにしてみました。多分,もっと,スマートな方法があると思
>いますが。

strstr()関数で'\'を(失敗するまで)検索するなんてのはだめなんですかね。

[ ]
RE:10372 保存先指定 マクロNo.10376
TAKA さん 01/11/17 14:45
 
TAKA です。

>Q&Aのサンプルマクロでうまくいきますか?
>"\"が2バイト文字の一部か独立しているかの判定はややこしそうです。

そのはずです。2バイトか1バイト文字かの処理をしていますから。


>とりあえず,次のようにしてみました。多分,もっと,スマートな方法があると思
>いますが。

Q&Aのサンプルか、まふさんの言われている方法が確実です。

一番いいのは、Arimacさんの言われているようにマクロ命令
で2バイト文字を1文字として処理するマクロ命令を用意してもら
うことです。
#要望はすでに出していますが。


P.S.
まだ、頭が痛いのは直りません。風邪ではないと思いますが。

[ ]
RE:10376 保存先指定 マクロNo.10385
山紫水明 さん 01/11/17 23:22
 
 TAKAさん,きいろいまふらあさん,JRくんさん,こんばんは。

 どうもいろいろコメントありがとうございます。

》10372の山紫水明さんのルーチンだと、例えば \ の直前に、2バイト目が
》0x81以降の文字がくると誤動作します。

 たしかにそうでした。お示しいただいたマクロで正常に動きました。

》Q&Aのサンプルか、まふさんの言われている方法が確実です。

 じっくり検討する余裕がなかったもので,サンプルマクロは,拡張子を取得する
のが目的だとばかり思っていました。

》一番いいのは、Arimacさんの言われているようにマクロ命令
》で2バイト文字を1文字として処理するマクロ命令を用意してもら
》うことです。
》#要望はすでに出していますが。

 たしか以前に使っていたVzでもそのような仕様だったような気がします。実現
を期待します。>>> 秀丸担当さん

》まだ、頭が痛いのは直りません。風邪ではないと思いますが。

 原因が分からないのもまた心配ですね。

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

[ ]