Home > CBM > BASIC > Keywords > Instr 180 Subpages: (divide), (equal), (less), (minus), (more), (multiply), (plus), (power), Abs, And, Append, Asc, Atn, Auto, Backup, Bank, Begin, Bend, Bload, Boot, Box, Bsave, Bump, Catalog, Char, Chr, Circle, Close, Clr, Cmd, Collect, Collision, Color, Concat, Cont, Copy, Cos, Data, Dclear, Dclose, Dec, Def, Delete, Dim, Directory, Dispose, Dload, Do, Dopen, Draw, Ds, Ds string, Dsave, Dverify, El, Else, End, Envelope, Er, Err, Exit, Exp, Fast, Fetch, Filter, Fn, For, Fre, Get, Get num, Getkey, Go, Gosub, Goto, Graphic, Gshape, Header, Help, Hex, If, Input, Input num, Int, Joy, Key, Left, Len, Let, List, Load, Locate, Log, Loop, Mid, Monitor, Movspr, New, Next, Not, Off, On, Open, Or, Paint, Peek, Pen, Pi, Play, Pointer, Poke, Pos, Pot, Print, Print num, Pudef, Quit, Rclr, Rdot, Read, Record, Rem, Rename, Renumber, Restore, Resume, Return, Rgr, Right, Rlum, Rnd, Rreg, Rspcolor, Rsppos, Rsprite, Run, Rwindow, Save, Scale, Scnclr, Scratch, Sgn, Sin, Sleep, Slow, Sound, Spc, Sprcolor, Sprdef, Sprite, Sprsav, Sqr, Sshape, St, Stash, Step, Stop, Str, Swap, Sys, Tab, Tan, Tempo, Then, Ti, Ti string, To, Trap, Troff, Tron, Until, Using, Usr, Val, Verify, Vol, Wait, While, Width, Window, Xor |
| Keyword | Abbreviation | Token (hex) | Version(s) | Classification | | INSTR | IN{Shift+S} | D4 | 3.5, 7.0 | Function | | APPEND | A{Shift+P} | D4 | 4.x | Command and Statement | | INSTR | IN{Shift+S} | E8 | 4.7 | Function | | SCNCLR | SC{Shift+N} | E8 | 3.5, 7.0 | Command and Statement |
INSTR ( haystack , needle [ , start ] ) | Parameters | Type | Legal Value(s) | Default Value | Note(s) | | haystack | String | any | | | | needle | String | any | | | | start | Integer | 1 to 255 | 1 | |
| Returns | Type | Value(s) | Note(s) | | found | Integer | 0 to 255 | |
String search; finds the location of a needle in the haystack.
The INSTR function searches a string, haystack, (from left to right) for the first occurance of a string, needle, beginning from the start position (default 1) and returns the found position. Both start and found are a 1-based character position within haystack. If needle is not found, zero is returned. BASIC does a binary comparison, so the case of characters is important, and special characters (like NULL and RETURN) may be included. Both haystack and needle are required; if either is missing (or an invalid expression), SYNTAX ERROR is generated. Both must be string expressions, otherwise TYPE MISMATCH ERROR occurs. You may use STR$ to convert a numeric expression into a string. If needle is an empty string, or start is greater than the length of haystack then INSTR returns zero. The start parameter defaults to 1 if omitted. If not numeric, TYPE MISMATCH ERROR occurs. Floating-point values will (effectively) be converted with INT. If the value is not legal (see above table), an ILLEGAL QUANTITY ERROR is generated. The start parameter is useful to find an additional occurance(s) of needle (by using the previous found value plus 1) in the same haystack, or to skip the first start-1 characters of the haystack. The INSTR function is great for parsing text for versions of BASIC where it is available; it is both compact to write and fast to execute. Older versions of BASIC need a relatively slow pair of program loops to find a sub-string. Examples:
PRINT INSTR(183.8, "8")
?TYPE MISMATCH ERROR
READY.
PRINT INSTR("183.8", "8")
2
READY.
PRINT INSTR("183.8", "8", 2+1)
5
READY.
PRINT INSTR("183.8", "8", 5+1)
0
READY.
PRINT INSTR("183.8", "")
0
READY. |
CHAR, CHR$, ERR$, HEX$, LEFT$, LOCATE, MID$, MOVSPR, RECORD, RIGHT$, TAB
© H2Obsession, 2014 |