7.9.19.8 Formatting String Hexadecimal Variables
Table 52. Formatting Hexadecimal Variables — Examples
Expression Comment Result
CRLFNumeric(1) = &H0d0a
Add leading zero to hex step 1 3338
StringVar(20) = "0" & Hex(CRLFNumeric)
Add leading zero to hex step 2 0D0A
CRLFNumeric(2) = HexToDec(Strings(20))
Convert Hex string to Float 3338.00
7.9.20 Subroutines
A subroutine is a group of programming instructions that is called by, but runs
outside of, the main program. Subroutines are used for the following reasons:
• To reduce program length. Subroutine code can be executed multiple times
in a program scan.
• To ease integration of proven code segments into new programs.
• To compartmentalize programs to improve organization.
By executing the Call() instruction, the main program can call a subroutine from
anywhere in the program.
A subroutine has access to all global variables
(p. 517). Variables local (p. 519) to a
subroutine are declared within the subroutine instruction. Local variables can be
aliased (as of 4/2013; OS 26) but are not displayed in the Public table. Global
and local variables can share the same name and not conflict. If global variables
are passed to local variables of different type, the same type conversion rules
apply as apply to conversions among variables declared as Public or Dim. See
Expressions with Numeric Data Types
(p. 162) for conversion types.
Note To avoid programming conflicts, pass information into local variables and /
or define some global variables and use them exclusively by a subroutine.
CRBasic example Subroutine with Global and Local Variables (p. 288) shows the
use of global and local variables. Variables counter() and pi_product are global.
Variable i_sub is global but used exclusively by subroutine process. Variables j()
and OutVar are local since they are declared as parameters in the Sub()
instruction,
Sub process(j(4) AS Long,OutVar).
Variable j() is a four-element array and variable OutVar is a single-element
array. The call statement,
Call ProcessSub (counter(1),pi_product)
passes five values into the subroutine: pi_product and four elements of array
counter(). Array counter() is used to pass values into, and extract values from,
the subroutine. The variable pi_product is used to extract a value from the
subroutine.
Call() passes the values of all listed variables into the subroutine. Values are
passed back to the main scan at the end of the subroutine.
288