HSP3Dish上でsplit命令が使えないためユーザ関数を作ってくださったスレがありました。
HSP3Dishでspilit命令の代用 http://hsp.tv/play/pforum.php?mode=all&num=59724
これは有りがたいと思い使用してみたところ、Android実機上では正常な結果が返ってこなかったため、自分でもsplit関数の代わりを作ってみたところやはり正常な結果が返ってきませんでした。
そこで両者のソースを調べたところ、マルチバイトを含む文字列をinstr命令で使用すると、返ってくる結果がAndroid上では不正確ということが分かりました。
下記の例では、
"あいうえお@かきくけこ"
"12345@67890"
の文字列内をinstr命令で"@"の位置を表示するサンプルですが、マルチバイトの文字列ではWindows上はinstr命令の結果は正常に返ってきますが、Android上になるとinstr命令の結果が「-1」が返ってきてしまいます。
#include "hsp3dish.as" a1 = "あいうえお@かきくけこ" a2 = "12345@67890" c1 = instr(a1, 0, "@") c2 = instr(a2, 0, "@") redraw 0 color 100, 100, 255 : boxf color 255, 255, 255 pos 0, 0 mes "" + c1 ; 結果(Windows: 10, Android: -1) Android上では「15」と出てほしい。 mes "" + c2 ; 結果(Windows: 5, Android: 5) 正常。 redraw 1 stop