In jBASE 5.8, an enhancement to the BASIC (aka jBC) compiler has made comparisons against '' (empty string) dramatically faster.
Historically it was quicker to compare the LEN() of a variable against 0 to test if a variable was '' (NULL).
For example if you're on 5.7 (or earlier) try the sample code.
workVar = STR('the quick brown fox jumps over the lazy dog', 10000)
startTime = SYSTEM(12)
FOR I = 1 TO 10000
IF workVar NE '' THEN
END
NEXT I
CRT 'First FOR loop took: ':SYSTEM(12)-startTime
startTime = SYSTEM(12)
FOR I = 1 TO 10000
IF LEN(workVar) THEN
END
NEXT I
CRT 'Second FOR loop took: ':SYSTEM(12)-startTime
On 5.8 the statement:
IF workVAR NE '' THEN
now gets compiled to a special function (this is also true for EQ '') that performs the same as
IF LEN(workVar) NE 0 THEN
so the sample program (above) will produce similar results (depending on system usage).
------------------------------
Peter Falson
Rocket Internal - All Brands
------------------------------