SUBROUTINE

SUBROUTINE


string.expression Index Level substring assignment
Syntax SUBROUTINE {(argument.list)}
SUBROUTINE subroutine.name{(argument.list)}  
Category BASIC
Type Statement
Description defines program as an external subroutine.

FlashBASIC provides the ability to "call subroutines". The "subroutine" statement must appear on the first line of an external subroutine invoked by a "call" statement.

Arguments defined in the optional "argument.list" are delimited by "," (commas). The "argument.list" must have the same number of arguments as are in the "call" statement.

If a subroutine is called from the Update processor, in either a file-defining item, or an attribute-defining item, no "argument.list" may be specified by the "call" statement.  If called from a file-defining item, the "item" being filed is automatically passed as a parameter in a call.  If called from an attribute-defining item, the current value of the attribute being processed is automatically passed.  Note that the subroutine will be called once for every value in the attribute.

A subroutine exits with a "return" statement.

All external subroutines must be cataloged prior to execution.
Options
See Also statements & functions ENTER PRECISION CLEAR hotkey0 hotkey1 hotkey2 hotkey3 hotkey4 hotkey5 hotkey6 hotkey7 hotkey8 hotkey9 date.iconv CALL RETURN x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 COMMON ACCESS GOSUB
Example *program main
10 input start.date
call validate.date(start.date,ok)
if not(ok) then goto 10

This example prompts for a date and calls the external subroutine "validate.date" to make sure the date is legal.  Here is the subroutine:

subroutine validate.date(pdate,ok)
*    may need rework for years crossing 2000
if pdate matches "1n0n1x1n0n1x2n0n" then
  if iconv(pdate,'d') # "" then
     ok=1
  end else
     ok=0
  end
end else
  ok=0
end
return

The variable "ok" is set to 1 if the date is valid.  Otherwise, "ok" is set to zero (false).
Warnings
Compatibility D3 7.0 AP R83
string.expression Index Level substring assignment