難し過ぎます。
PRINT ">";
WHILE TRUE
B$=INKEY$()
A$=A$+B$
PRINT B$;
IF B$==CHR$(13) THEN BREAK
WEND
PRINT
WHILE TRUE
I=INSTR(I,A$,",")
IF I<0 THEN BREAK
INC I
PRINT I;"もじめ"
WEND
あらかたのやり方は出てしまっているのて、けいさんの使っていた裏技(?)を使ったやり方だけ書いておきます。
LINPUT">";A$
FOR I=0TO LEN(A$)-1
IF A$[i]=="," THEN ?I+1;"もじめ"
NEXT
マニュアル通りのやり方じゃないので危険かもしれないという可能性もありますが、添字の範囲外のエラーも出る(暴走しない)し、まあ問題ないかなと考えてきてます。
まあでもご利用は自己責任で…
FOR~NEXTで一文字ずつ調べていると文字数分オーバーヘッドが
あるためINSTR関数が時間が掛かるような仕様で無ければ
INSTR関数を使った方が処理時間は早いと考えます。
2文字以上の検索はMID$のみで処理をする場は二重ループで
検索する文字列を左から1文字ずつチェックして
途中で不一致だったらBREAKしてループを抜けたときに
ループで使っている変数がループ回数と同じなら一致と判断
すればいいと思います。時間は掛かりそうですけど^^;;;
@ANS_4
FOR I=0 TO LEN(S$)-1
FOR J=0 TO LEN(SE$)-1
IF MID$(S$,I,1)!=MID$(SE$,J,1) THEN BREAK
NEXT
IF J==LEN(SE$) THEN ? I;”もじめ”
I=I+LEN(SE$)
NEXT