投稿者 スレッド: InStr関数のVBとの仕様の違いについて  (Read 6682 times)

akane3

  • ゲスト
InStr関数のVBとの仕様の違いについて
« 投稿日:: 2014年 8月 02日 , 午前 06:45:40 »
素敵なソフトウェアをご提供いただきありがとうございます。
先日気が付いたのですが、InStr(6, "abcde abcde", "cd")は、Visual Basicでは9となるのに対し、Tiny basicでは4となります。
関数の仕様は「文字列A$のn番目からの文字から,文字列B$を探し,見つかればその位置を開始位置からの半角文字数で与えます。見つからない場合0を返します。」です。「開始位置」の意味が、Visual Basicなどでは「文字列の開始位置」であるのに対し、Tiny basicでは「検索の開始位置」となります。互換性は損なわれるものの、Tiny basicの仕様の方が使いやすい面はあります。ただ、分かりにくいので、単に「開始位置」ではなく「検索の開始位置」と書いていただいた方がはっきりすると思います。
なお、例に挙げられている
A$= "tbasic"
B$ = "in"
s = InStr(1,A$,B$)
t = InStr(2,A$,B$)
u = InStr(3,A$,B$)
を実行すると,
s = 2, t = 1, u = 0
となります。

は意味不明で、B$ = "b" ではないでしょうか?

takeuchi

  • 管理人
  • *****
  • 投稿: 97
Re:InStr関数のVBとの仕様の違いについて
« Reply #1 投稿日:: 2014年 8月 02日 , 午前 08:42:38 »
akane3 さま

 ご指摘有難うございます。

 VBとの仕様の違いご指摘の通りです。実は細かい点で色々微妙に違っています。
 説明が分かりにくさのこと,また,例での誤り,ご指摘の通りでした。

 ご指摘の点,「Tiny Basic for Windows 入門」文書を早速修正しアップしました。
http://www.tbasic.org/tutorial/201408IntroToTbasic.pdf

 どうも有難うございました。

 よく見たら当該箇所に別な不適切な文章がありました。
 「半角文字数で与えます。」→「文字数で与えます。」
 これも修正しました。
« Last Edit: 2014年 8月 02日 , 午前 11:34:56 by takeuchi »