Asc

Returns the corresponding ASCII or Unicode integer representation of a 
character.

Syntax
   Declare Function Asc ( ByRef str As Const String, ByVal position As 
   Integer = 1 ) As ULong
   Declare Function Asc ( ByVal str As Const ZString Ptr, ByVal position As 
   Integer = 1 ) As ULong
   Declare Function Asc ( ByVal str As Const WString Ptr, ByVal position As 
   Integer = 1 ) As ULong

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 = "&#1055;&#1088;&#1080;&#1074;&#1077;&#1090;, &#1084;&#1080;&#1088;"
   print "the Unicode of the second char of " & a & " is: " & asc(a, 2)
will produce the output:
the Unicode of the second char of 
&#1055;&#1088;&#1080;&#1074;&#1077;&#1090;, &#1084;&#1080;&#1088; 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
   * ASCII Character Codes
   * Chr
   * Str
   * Val

