Commodore‎ > ‎BASIC‎ > ‎Keywords‎ > ‎

INSTR

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 

  Syntax  
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
 
  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
Comments