ファイル名の連番指定について等No.08053
らうの さん 16/01/29 22:11
 
お世話になっております。

改頁コードが複数あるファイルから、改頁コードで区切られた部分を切り出して別フ
ァイルに保存するマクロを作ろうと思っています。
試行錯誤して概ね希望通りに動作するマクロを作れたのですが、引っかかっている部
分がありますので、アドバイス頂ければと思います。

元のファイル名が「文書名.txt」として、切り出すファイルを「文書名_***.txt」
(***は3桁の連番)としたいと思っています。
最初に数値型変数で「#number = 1;」とし、以降ループする処理の中で「#number =
#number + 1;」と数値を増やし、それをstr関数で文字列型変数にしてファイル名に
付与するようにしていますが、1桁の数字は当然1桁にしかなりません。
ここで1桁の数字を「001」「002」のようにするにはどのようにすればいいのでしょ
うか?

それともう1点、元のファイル名をbasename2で取り出したのですが、これだと拡張子
を含んだ状態で取得されます。
拡張子を含まない状態にするにはどのようにすればいいのでしょうか?

以上2点、アドバイス頂ければ幸いです。
どうかよろしくお願いします。

[ ]
RE:08053 ファイル名の連番指定について等No.08054
IKKI さん 16/01/29 22:32
 
らうのさん、こんばんは。ユーザーの IKKI と申します。

>ここで1桁の数字を「001」「002」のようにするにはどのようにすればいいのでしょ
>うか?
秀丸エディタ v8.56 でしたら
sprintf("%03d", #number)
で3桁の数字列に変換できます。
それより古いバージョンでしたら、汚い方法ですが
rightstr("000" + str(#number), 3)
とするしかありません。

>拡張子を含まない状態にするにはどのようにすればいいのでしょうか?
leftstr(basename2, strrstr(basename2, "."))
でいかがでしょうか。
拡張子のないファイル名を扱う場合はもう一工夫必要ですが。

以上、ご参考まで。

[ ]
RE:08054 ファイル名の連番指定について等No.08055
らうの さん 16/01/29 23:06
 
IKKIさん、早速のアドバイス、どうもありがとうございます。
アドバイス通りにマクロを編集すると、無事希望通りの動作となりました。
本当にどうもありがとうございました。

なお、使用している秀丸はv8.56でしたので、sprintfを使用させて頂きました。

[ ]