Returns the corresponding ASCII or Unicode integer representation of a character.
Syntax
Usage
result = Asc( str [, position ] )
Parameters
str
The source string.
position
The position in the string of a character.
Return Value
The raw character value stored at
position in
str.
If both
str and
position can be evaluated at compile time (like
Asc("a") or
Asc(chr(97)) or
Asc("abc", 2) ...), the value is returned in a
UInteger result, otherwise in a
ULong result.
Description
If
str is a
String or a
ZString, the
UByte value at that
position is returned. This will be a 7-bit
ASCII code, or even a 8-bit character value from some code-page, depending on the string data stored in
str.
If
str is a
WString, the
UShort (Windows) or
ULong (Linux) value at that
position is returned. This will be a 16bit value on Windows (WStrings use UTF16 there), or a 32bit value on Linux (WStrings use UTF32 there).
The function returns zero (
0) if the string is a zero length string,
position is less than one (
1), or
position is greater than the number of characters in
str.
Chr performs the opposite function for ASCII strings, while
WChr is the opposite for Unicode strings, returning a string containing the character represented by the code passed as an argument.
Example
Print "the ascii code of 'a' is:"; Asc("a")
Print "the ascii code of 'b' is:"; Asc("abc", 2)
will produce the output:
the ascii code of 'a' is: 97
the ascii code of 'b' is: 98
Unicode example (Note to documentation editors: don't put inside %%(qbasic) markers or the Russian text will disappear!)
dim a as wstring * 12
a = "Привет, мир"
print "the Unicode of the second char of " & a & " is: " & asc(a, 2) |
will produce the output:
the Unicode of the second char of Привет, мир is: 1088 |
Platform Differences
- DOS does not support the wide-character string version of Asc.
Differences from QB
- The optional position argument is new to FreeBASIC.
- QB does not support the wide-character string version of Asc
See also