数字のみのファイル名での判定No.07000
KAZYA71 さん 12/06/05 13:26
 
ファイル名が数字のみですが、拡張子はさまざまです。
例えば
「1.ISO」「2.ISO]〜「998.ISO」「999.ISO」や
「1.TXT」「2.TXT]〜「998.TXT」「999.TXT」といったファイルです。

開いているファイルのファイル名は「basename」で読み込めるのですが、これを文字
列ではなく数値として扱いたいと考えております。

具体的には「if 〜 else 〜 goto」で以下の動作を行ないたいのです。
「1 〜 499」「500」「501 〜 999」でマクロ内の異なる場所へ飛ばし、異なる処理
をさせます。

ファイル名を読み取るまでの情報は多いのですが、そのファイル名を数値として扱っ
たり、数値の大小の判定をさせる情報を見つけることができませんでした。

開いている「数値+拡張子」のみのファイル名の数値のみを取り出し、比較させる方
法をご教授ください。

[ ]
RE:07000 数字のみのファイル名での判定No.07001
KAZYA71 さん 12/06/05 13:26
 
>ファイル名が数字のみですが、拡張子はさまざまです。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>開いている「数値+拡張子」のみのファイル名の数値のみを取り出し、比較させる
>方法をご教授ください。

[ ]
RE:07000 数字のみのファイル名での判定No.07002
Imabeppu さん 12/06/05 13:38
 
Imabeppu です。

> 開いているファイルのファイル名は「basename」で読み込めるのですが、これを文字
> 列ではなく数値として扱いたいと考えております。

val 関数を使用してはどうでしょうか。

[ ]
RE:07000 数字のみのファイル名での判定No.07003
秀まるお2 さん 12/06/05 15:40
 
 ファイル名の中に含まれる数値のみを取り出すサンプルマクロを作ってみまし
た。

    $s = basename;
    while(1) {
        $left = leftstr( $s, 1 );
        if( $left >= "0" && $left <= "9" ) {
            break;
        }
        $s = midstr( $s, 1 );
    }
    #x = 1;
    while(1) {
        $mid = midstr( $s, #x, 1 );
        if( $mid >= "0" && $mid <= "9" ) {
            //OK
        } else {
            break;
        }
        #x = #x + 1;
    }
    $s = leftstr( $s, #x );
    #num = val( $s );
    message str(#num);

 こんな感じでいけると思います。

 HmJre.dllのReplaceRegular関数を使った方が簡単かもしれませんけども、と
りあえず上記のようなやり方出来ます。

[ ]
RE:07003 数字のみのファイル名での判定No.07004
KAZYA71 さん 12/06/05 23:52
 
> Imabeppu さま
ありがとうございます。
一度エディタ内に貼り付けて、そこから拡張子を削除し、残った数字のみの文字列を
切り取り、それを教えていただいた関数で数値にすることで、思った処理ができまし
た。
if文の条件や、文字列なのか数値なのかで頭がパニックになりましたが、なんとか完
成しました。

> 秀まるお2 担当さま
エディタ内に貼ったり切ったりしないで良いのでスマートですね。
ぜひ利用させていただきます。

どうもありがとうございました。

[ ]
RE:07004 数字のみのファイル名での判定No.07005
山紫水明 さん 12/06/06 08:40
 
 KAZYA71さん,

>一度エディタ内に貼り付けて、そこから拡張子を削除し、残った数字のみの文
>字列を切り取り、それを教えていただいた関数で数値にすることで、思った処
>理ができました。

 数値を取り出すだけでしたら,val(basename) でできます。Imabeppu さんの
コメントもそういう主旨だったのでしょう。

123.txt → 123
123ab.txt → 123
ここまでは秀まるおさんのマクロと同じです。ただし
ab123.txt → 0 となりますが,秀まるおさんのマクロでは
ab123.txt → 123
となります。
                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07005 数字のみのファイル名での判定No.07033
KAZYA71 さん 12/06/11 14:26
 
山紫水明さん

> 数値を取り出すだけでしたら,val(basename) でできます。Imabeppu さんの
>コメントもそういう主旨だったのでしょう。

そういうことでしたか。
ファイル名には数値以外を含めていないため、エディタ内で切ったり貼ったりしない
でもできるのですね。
勉強になりました。
ありがとうございます。

[ ]