subroutine Statement

The subroutine statement defines a program as an external subroutine.

Syntax

subroutine {(arg.list)}

subroutine subroutine.name{(arg.list)}

Parameter(s)

arg.list

Variables to be assigned by the corresponding call statement.

subroutine.name

Subroutine to define as external.

Description

FlashBASIC or BASIC 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 argument list are delimited by , (commas). arg.list must contain 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 arg.list can 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 is called once for every value in the attribute.

A subroutine exits with a return statement.

All external subroutines must be cataloged prior to execution.

Example(s)

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

*program main

10 input start.date

call validate.date(start.date,ok)

if not(ok) then goto 10

Here is the subroutine:

subroutine validate.date(pdate,ok)

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 0 (false).

See Also

access() Function, call Statement, clear Statement, common Statement, enter Statement, gosub Statement, hotkey0, hotkey1, hotkey2, hotkey3, hotkey4, hotkey5, hotkey6, hotkey7, hotkey8, hotkey9, precision Statement, return Statement, Statements and Functions