Wiki source for KeyPgAsc


Show raw source

{{fbdoc item="title" value="ASC"}}----
Returns the corresponding ASCII or Unicode integer representation of a character

{{fbdoc item="syntax"}}##
[[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **Asc** ( [[KeyPgByref|byref]] //str// [[KeyPgAs|as]] [[KeyPgConstQualifier|const]] [[KeyPgString|string]], [[KeyPgByval|byval]] //position// [[KeyPgAs|as]] [[KeyPgInteger|integer]] = 1 ) [[KeyPgAs|as]] [[KeyPgUlong|ulong]]
[[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **Asc** ( [[KeyPgByval|byval]] //str// [[KeyPgAs|as]] [[KeyPgConstQualifier|const]] [[KeyPgZstring|zstring]] [[KeyPgPtr|ptr]], [[KeyPgByval|byval]] //position// [[KeyPgAs|as]] [[KeyPgInteger|integer]] = 1 ) [[KeyPgAs|as]] [[KeyPgUlong|ulong]]
[[KeyPgDeclare|declare]] [[KeyPgFunction|function]] **Asc** ( [[KeyPgByval|byval]] //str// [[KeyPgAs|as]] [[KeyPgConstQualifier|const]] [[KeyPgWstring|wstring]] [[KeyPgPtr|ptr]], [[KeyPgByval|byval]] //position// [[KeyPgAs|as]] [[KeyPgInteger|integer]] = 1 ) [[KeyPgAs|as]] [[KeyPgUlong|ulong]]
##
{{fbdoc item="usage"}}##
//result// = **Asc**( //str// [, //position// ] )
##
{{fbdoc item="param"}}
##//str//##
The source string.
##//position//##
The position in the string of a character.

{{fbdoc item="ret"}}
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 ##[[KeyPgUinteger|uinteger]]## result, otherwise in a ##[[KeyPgUlong|ulong]]## result.

{{fbdoc item="desc"}}
If ##//str//## is a ##[[KeyPgString|String]]## or a ##[[KeyPgZstring|ZString]]##, the ##[[KeyPgUbyte|UByte]]## value at that ##//position//## is returned. This will be a 7-bit [[CptAscii|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 ##[[KeyPgWstring|WString]]##, the ##[[KeyPgUshort|UShort]]## (Windows) or ##[[KeyPgUlong|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//##.

##[[KeyPgChr|Chr]]## performs the opposite function for ASCII strings, while ##[[KeyPgWchr|WChr]]## is the opposite for Unicode strings, returning a string containing the character represented by the code passed as an argument.

{{fbdoc item="ex"}}
{{fbdoc item="filename" value="examples/manual/strings/asc.bas"}}%%(freebasic)
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)
##<<::c:: will produce the output:
<<##the Unicode of the second char of Привет, мир is: 1088
##<<::c::
{{fbdoc item="target"}}
- DOS does not support the wide-character string version of ##**ASC**##.

{{fbdoc item="diff"}}
- The optional ##//position//## argument is new to ""FreeBASIC"".
- QB does not support the wide-character string version of ##**ASC**##

{{fbdoc item="see"}}
- [[CptAscii|ASCII Character Codes]]
- ##[[KeyPgChr|Chr]]##
- ##[[KeyPgStr|Str]]##
- ##[[KeyPgVal|Val]]##

{{fbdoc item="back" value="CatPgString|String Functions"}}
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki



sf.net phatcode