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

KeywordAbbreviationToken (hex)Version(s)Classification
INSTRIN{Shift+S}D43.5, 7.0Function
APPENDA{Shift+P} D4 4.x Command and Statement 
INSTRIN{Shift+S}E84.7Function
SCNCLRSC{Shift+N} E8 3.5, 7.0 Command and Statement 

 Syntax 
INSTR ( haystack , needle [ , start ] )
 
ParametersTypeLegal Value(s)Default ValueNote(s)
haystackString
any
needleStringany   
startInteger1 to 2551 
 
ReturnsTypeValue(s)Note(s)
foundInteger
0 to 255
 
 Purpose 
String search; finds the location of a needle in the haystack.

 
 Remarks 
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.
 
 Compare With 
 
 Contrast With 
 
 See Also 

© H2Obsession, 2014