情シス特化型メディア SYSZO

投稿日時 - 2016.11.24 14:12:57

tea_riko*さん

VBScriptの関数『InStrRev』について

お世話様です。
VBScriptの関数『InStrRev』についての質問です。

▽objFileの中身
C:hogehugapiyo_01_piyo.txt

▽実行
Right(InStrRev(objFile,""))

▽期待値
piyo_01_piyo.txt

▽実際の戻り値の例
apiyo_01_piyo.txt

このように挙動がおかしくなることがありますがなぜでしょう?
そもそも私のやり方が違いますか?(知識不足すみません・・・)
ご存知の方いらっしゃいますか?

0
いいね
2016.11.24 14:18
tea_riko*さん
▽objFileの中身
C:hoge¥huga¥piyo_01_piyo.txt

▽実行
Right(InStrRev(objFile,”¥”))

▽期待値
¥piyo_01_piyo.txt

▽実際の戻り値の例
a¥piyo_01_piyo.txt

リプレースされちゃいました。
0
いいね
2016.11.24 14:41
igonさん
> ▽実行
> Right(InStrRev(objFile,”¥”))
これがエラーになりそうなので実際にどう書かれているかが不明ですが、おそらく↓のようなことをやりたいのかなという推測です。

dim objFile
objFile = ”C:hoge¥huga¥piyo_01_piyo.txt”
msgbox(Right(objFile, Len(objFile) - InStrRev(objFile,”¥”)+1))
2
いいね
2016.11.24 14:49
shinjiさん
あるいはSplit関数を使うとか?
http://www.kanaya440.com/contents/script/vbs/function/string/split.html
UBoundと組み合わせれば出来そう。
1
いいね
2016.11.24 14:54
shinjiさん
あとはこんなのとか。
http://vbs.mystia.jp/227
1
いいね
2016.11.24 15:24
tea_riko*さん
igonさん、shinjiさん

回答ありがとうございます!
igonさんの推測で合っています。

そもそもInStrRevの挙動をちゃんと理解できていなかったようです・・・。
ご迷惑をおかけしました。
0
いいね
2016.11.24 15:30
igonさん
よかったです。
おそらくですが、InStrRevが「末尾から探していくが、返ってくるのは先頭からの位置」というところが引っかかったポイントかなと思います。
2
いいね
2016.11.24 15:40
tea_riko*さん
igonさん

そのとおりです・・・。
思い込みで勝手に罠にはまってました。
またひとつ成長できました。
0
いいね
コメントする

ログインしてからコメントできます

SYSZOはアプリ版もご利用ください

SYSZOアプリ版では質問機能以外につぶやきやフレンド登録、チャット機能など様々な機能があります。

SYSZOはApp StoreまたはGooglePlayよりダウンロードしてご利用ください。

  • App Store
  • Google play

急上昇ワード

更新2017.02.23 05:04

SYSZO応援企業