function main local cStr := "This is " + CHR(0) + " a test." local cTest, nI, nJ, crlf := CHR(13)+CHR(10) // Test various string operators. OUTSTD (LEN(cStr)) OUTSTD (cStr) OUTSTD (UPPER (cStr)) OUTSTD (LOWER (cStr)) OUTSTD (CHR (13) + CHR (10)) OUTSTD (ASC (SUBSTR (cStr, 8))) OUTSTD (ASC (SUBSTR (cStr, 9))) OUTSTD (ASC (SUBSTR (cStr, 10))) OUTSTD (crlf) OUTSTD (crlf) OUTSTD (crlf) OUTSTD (">") OUTSTD (LEFT (cStr, 8)) OUTSTD("<") OUTSTD (crlf) OUTSTD (">") OUTSTD (RIGHT (cStr, 8)) OUTSTD("<") OUTSTD (crlf) OUTSTD (ISDIGIT ("9")) OUTSTD (crlf) OUTSTD (ISDIGIT ("9A")) OUTSTD (crlf) OUTSTD (ISDIGIT ("AA")) OUTSTD (crlf) OUTSTD (ISDIGIT ("A")) OUTSTD (crlf) OUTSTD (crlf) cTest := " " + CHR (0) + "ABC" + CHR (0) + " " OUTSTD (crlf) OUTSTD (">") OUTSTD(LTRIM (cTest)) OUTSTD("<") OUTSTD (crlf) OUTSTD (">") OUTSTD(TRIM (cTest)) OUTSTD("<") OUTSTD (crlf) OUTSTD (">") OUTSTD(ALLTRIM (cTest)) OUTSTD("<") OUTSTD (crlf) OUTSTD (crlf) OUTSTD (crlf) OUTSTD (">") OUTSTD (REPLICATE ("!", 32)) OUTSTD("<") OUTSTD (crlf) OUTSTD (">") OUTSTD (SPACE (32)) OUTSTD("<") // Test string copying. cTest := cStr OUTSTD (crlf) OUTSTD (cStr) OUTSTD (crlf) OUTSTD (cTest) OUTSTD (crlf) OUTSTD (crlf) // Test string concatenation. cTest += cStr OUTSTD (crlf) OUTSTD (cStr) OUTSTD (crlf) OUTSTD (cTest) OUTSTD (crlf) OUTSTD (crlf) // Test the string comparison operators in the HVM. StrTest ("ABC", "ABC") StrTest ("ABC", "ABCD") StrTest ("ABCD", "ABC") StrTest ("ABC", "DEF") StrTest ("ABC", "DEFG") StrTest ("ABCD", "DEF") OUTSTD (crlf) OUTSTD (crlf) return nil function StrTest (Str1, Str2) OUTSTD (CHR(13)+CHR(10)+CHR(10)) OUTSTD (Str1) OUTSTD (", ") OUTSTD (Str2) OUTSTD (" == ") OUTSTD (Str1 == Str2) OUTSTD (", != ") OUTSTD (Str1 != Str2) OUTSTD (", < ") OUTSTD (Str1 < Str2) OUTSTD (", <= ") OUTSTD (Str1 <= Str2) OUTSTD (", > ") OUTSTD (Str1 > Str2) OUTSTD (", >= ") OUTSTD (Str1 >= Str2) OUTSTD (CHR(13)+CHR(10)) OUTSTD (Str2) OUTSTD (", ") OUTSTD (Str1) OUTSTD (" == ") OUTSTD (Str2 == Str1) OUTSTD (", != ") OUTSTD (Str2 != Str1) OUTSTD (", < ") OUTSTD (Str2 < Str1) OUTSTD (", <= ") OUTSTD (Str2 <= Str1) OUTSTD (", > ") OUTSTD (Str2 > Str1) OUTSTD (", >= ") OUTSTD (Str2 >= Str1) return nil