[Coco] INSTR question
Allen Huffman
alsplace at pobox.com
Thu Feb 9 16:48:23 EST 2017
> On Feb 9, 2017, at 3:40 PM, Salvador Garcia via Coco <coco at maltedmedia.com> wrote:
>
> Hi,
>
> It returns one because when the string to search is empty it returns the Start position. Since you've omitted this, it defaults to 1.
>
> Try this:
>
> PRINT INSTR(3,"1234567","")
>
> This is what happened with VB6. It seems that this version of Basic carried over the behavior from earlier versions, including CoCo BASIC.
>
> Have a look at the table under the section for Return Value:
>
> https://msdn.microsoft.com/en-us/library/wybb344c(v=vs.84).aspx
Excellent. Thank you! That answers my question. Not a bug, but the way it works, which means it cannot be used without checking the string to be empty first, or doing a workaround like I just tried.
10 IF A$<>"" THEN LN=INSTR("ABCD",A$):ON LN
It's a pity, because ON x GOTO/GOSUB ignore the 0 value, so it it worked the same way, this could be done:
ON INSTR("ABC",INKEY$) GOTO 100,200,300
That's quite a bit faster than using a variable.
-- A
More information about the Coco
mailing list