[リストへもどる]
一括表示

投稿時間:2004/02/13(Fri) 13:18
投稿者名:大きな馬
URL :
タイトル:
パス名が拡張子の判断は?
いつもお世話になってます。

今回はこのような質問です。
画面上のテキストに適当なパス名を入力がされた時、
その入力されたパス名が、何らかの拡張子(「.TXT」「.LOG」等)で終了
してるかの判断を簡単に行う方法はないでしょうか?

宜しくお願いします。

投稿時間:2004/02/13(Fri) 14:01
投稿者名:これ
URL :
タイトル:
Re: パス名が拡張子の判断は?
> 画面上のテキストに適当なパス名を入力がされた時、
> その入力されたパス名が、何らかの拡張子(「.TXT」「.LOG」等)で終了
> してるかの判断を簡単に行う方法はないでしょうか?

    pos = InStrRev(Text1.Text, ".")
    If pos > 0 Then
        Debug.Print "拡張子は" & Mid(Text1.Text, pos + 1)
    Else
        Debug.Print "拡張子なし"
    End If

これぐらいなら簡単ですか?

投稿時間:2004/02/14(Sat) 00:15
投稿者名:Say
Eメール:
URL :
タイトル:
Re: パス名が拡張子の判断は?
"."でSplitしてできた配列のUBound要素の中身を覗いてみるとか。

投稿時間:2004/02/17(Tue) 01:05
投稿者名:t.t.n.
Eメール:
URL :
タイトル:
Re^2: パス名が拡張子の判断は?
> "."でSplitしてできた配列のUBound要素の中身を覗いてみるとか。

VC++にある _splitpath という関数はきちんと解析したわけじゃないですが

1.":"でSplitしてドライブレターを分離する。
2.ドライブレターでない部分を"\"でSplitする
3.最後の要素を"."でsplitする、だたし"."、".."のときは例外処理で、そのままにする
4.3で得られた配列の最後を拡張子とする

という動きのようです。
これだとフォルダ名に"."が含まれていても対応できます。
何度もSplitを行いますが自分で同じようなプロシージャを作ってはどうでしょう?

投稿時間:2004/02/18(Wed) 12:39
投稿者名:匿名
Eメール:
URL :
タイトル:
Re: パス名が拡張子の判断は?
それが実際に存在するファイルであるなら
Path=調べたい文字列
if Left(Right(Path,4),1) = "." then
でできます。
(Instrは重いので、極力使用しないほうがよろしいかと?)

実際に存在するファイルであるなら
Dir(Path)でファイル名が返ってくれば、ファイル
返ってこなければ、ディレクトリ
と言うこともできます。

投稿時間:2004/02/18(Wed) 12:58
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
この方はマルチポストです
この方はマルチポストで向こうでも多くの方から回答を頂いておられるのですが
返信は一度きりで!!!!です。

これで回答を打ち切られてはどうでしょうか?