Re: Easy Q: Found ASCII #, is there CHR('x')
Posted in 1993
Topics: Stored Procedures & SPL
N.B. If your name is Brian Gallaher then ignore the following because I have already replied to you direct (I'm still getting used to this BBS :-( ) 1. Use FGL_KEYVAL() if you have it, as in: ------------------------------------------- MAIN # Convert ASCII character to ASCII code integer value # (n.b. FGL_KEYVAL() returns a 0 for a space) DEFINE a_char CHAR(1) DEFINE ascii_code SMALLINT WHILE TRUE PROMPT "Enter ASCII Character (^E = Exit): " for a_char ON KEY (CONTROL-E) EXIT PROGRAM END PROMPT IF a_char = " " THEN LET ascii_code = 32 ELSE LET ascii_code = FGL_KEYVAL(a_char) END IF DISPLAY ascii_code END WHILE END MAIN If you have not got FGL_KEYVAL() you could do something like this: ------------------------------------------------------------------ MAIN DEFINE pass_char CHAR(1) DEFINE pass_number SMALLINT DEFINE return_code SMALLINT WHILE TRUE PROMPT "Enter ASCII Character (^N = next test, ^E = Exit): " for pass_char ON KEY (CONTROL-N) EXIT WHILE ON KEY (CONTROL-E) EXIT PROGRAM END PROMPT LET return_code = chr(pass_char) DISPLAY return_code END WHILE WHILE TRUE PROMPT "Enter ASCII Code Number (^E = Exit): " for pass_number ON KEY (CONTROL-E) EXIT PROGRAM END PROMPT LET pass_char = ASCII pass_number LET return_code = chr(pass_char) DISPLAY return_code END WHILE END MAIN FUNCTION chr(a_char) # Convert ASCII character to ASCII code integer value # Version 3 (Not using FGL_KEYVAL() ) DEFINE a_char CHAR(1) DEFINE ascii_code SMALLINT DEFINE ascii_lookup CHAR(255) DEFINE i SMALLINT LET ascii_lookup = " " # padd string to full length FOR i = 1 TO 255 LET ascii_lookup[i] = ASCII i END FOR LET ascii_code = 0 IF a_char = " " THEN LET ascii_code = 32 ELSE FOR i = 1 TO 255 IF a_char = ascii_lookup[i] THEN LET ascii_code = i EXIT FOR END IF END FOR END IF RETURN ascii_code END FUNCTION ---------------------------------------------------------------- Hope this is useful to anyone else out there..