質問
▽objFileの中身
C:hoge¥huga¥piyo01piyo.txt
▽実行
Right(InStrRev(objFile,”¥”))
▽期待値
¥piyo01piyo.txt
▽実際の戻り値の例
a¥piyo01piyo.txt
リプレースされちゃいました。
> ▽実行
> Right(InStrRev(objFile,”¥”))
これがエラーになりそうなので実際にどう書かれているかが不明ですが、おそらく↓のようなことをやりたいのかなという推測です。
dim objFile
objFile = ”C:hoge¥huga¥piyo01piyo.txt”
msgbox(Right(objFile, Len(objFile) - InStrRev(objFile,”¥”)+1))
あるいはSplit関数を使うとか?
http://www.kanaya440.com/contents/script/vbs/function/string/split.html
UBoundと組み合わせれば出来そう。
igonさん、shinjiさん
回答ありがとうございます!
igonさんの推測で合っています。
そもそもInStrRevの挙動をちゃんと理解できていなかったようです・・・。
ご迷惑をおかけしました。
よかったです。
おそらくですが、InStrRevが「末尾から探していくが、返ってくるのは先頭からの位置」というところが引っかかったポイントかなと思います。
質問
お世話様です。
VBScriptの関数『InStrRev』についての質問です。
▽objFileの中身
C:hoge\huga\piyo01piyo.txt
▽実行
Right(InStrRev(objFile,""))
▽期待値
\piyo01piyo.txt
▽実際の戻り値の例
a\piyo01piyo.txt
このように挙動がおかしくなることがありますがなぜでしょう?
そもそも私のやり方が違いますか?(知識不足すみません・・・)
ご存知の方いらっしゃいますか?