FreeBASIC ASC
目次→実行時ライブラリー参考→文字列関数→ASC←オリジナル・サイト
指定文字に対応する、ASCIIかユニコードの整数表示を返します。
構文:
用法:
result = Asc
( str [, position ] )
パラメタ:
str
ソース文字列。
position
文字の、文字列の中での位置。
戻り値:
str の
position 位置に保存された、生の文字の値。
コンパイル時に
str と
position の両方を評価できる場合(
Asc("a")、
Asc(chr(97))、
Asc("abc", 2)...など)、値は
uinteger の結果で返されます。 あるいは
ulong の結果になります。
記述:
str が、
String か
ZString の場合は、その
position の
UByte 値が返されます。
これは、
str に格納された文字列データに応じて、7 ビットの
ASCII コードか、あるいは、いくつかのコードページから、同等の 8 ビット文字値となります。
str が
WString なら、その
position の、
UShort (Windows) か
ULong (Linux) の値が返されます。
これは、Windows では 16ビットの値(Windows では WStrings は UTF16 を使う)で、Linux では32ビット値(Linux では WStrings は UTF32 を使う)になります。
str で、文字列が、文字数ゼロの文字列であれば、関数は、ゼロ(0)を返します。
また、
position 位置が、1(1)未満であるか、または、
position 位置が、文字数より大きいときも、関数は、ゼロ(0)を返します。
Chr は、ASCII文字列のための反対の関数です。
WChr は、ユニコード文字列のための反対の関数です。
それぞれ、引数として渡されたコードによって表される文字を入れた文字列を、返します。
例: このコードは ShiftJIS で保存して実行して下さい。
Dim WStringStr As WString * 100
Print "the ascii code of 'a' is:";
Asc("a")
Print "the ascii code 97 is:";
Chr(97)
Print "the ascii code of 'b' is:";
Asc("abc", 2)
Print "the ascii code 98 is:";
Chr(98)
WStringStr = "愛"
Print "the ascii code of '愛' is:";
Asc(WStringStr)
Print "the ascii code 24859 is:";
WChr(24859)
WStringStr = "藍"
Print "the ascii code of '藍' is:";
Asc(WStringStr)
Print "the ascii code 34253 is:";
WChr(34253)
Sleep
とすると、以下のように出力されるでしょう:
the ascii code of 'a' is: 97
the ascii code of 'b' is: 98
ユニコードの例
(文書エディタでの注意: %%(qbasic)マークの中に置かないでください。さもないと、ロシア文字は見えなくなるでしょう!)
渡辺注:どのマシン上でも、すべてのユニコード文字を見せることができる、というわけではありません。利用できる文字は、実行画面(コンソール)で現在使用中のフォントに依存します。
ソース・コード(.bas ファイル)は、UNICODE(UTF16LE BOM) で保存します。
dim a as wstring * 12
a = "Привет, мир"
print "the Unicode of the second char of " & a & " is: " & asc(a, 2)
sleep
は以下のように出力されます:
注:全角文字列を表示するために、コマンド プロンプトのタイトルバーを右クリックしてプロパティを表示させて、右下画面のように、フォントを、「MS ゴシック」に変更します。
the Unicode of the second char of Привет, мир is: 1088
ユニコードの例(追加)
とすると、以下のように出力されるでしょう:

注:日本語 Windows 標準設定の、コマンド プロンプトの「ラスターフォント(Raster font ビットマップ・フォント)」では、Print で、ユニコードの文字を表示しようとすると、半角ベースの幅しか確保しません。このため、全角の文字を含む文字列を表示すると、右端が欠落します。
上の例のコードでは、文字数だけ、空白を、Space で追加して、表示させる幅をかせいでいます。
ユニコード のソース・コード(.bas ファイル)で、WString の全角文字の Print を補助する、ユーザ定義関数 Expand もあります。
コマンド プロンプトのタイトルバーを右クリックしてプロパティを表示させて、右画面のように、フォントを、「MS ゴシック」に変更すれば、プログラムで細工しなくても、素の print で全角文字列を表示できます。
これも、2ちゃんねるの、「デフォルトの名無し」さんに教えていただきました。
プラットホーム差:
-
DOS は、ASC のワイド文字型文字列バージョンをサポートしません。
QBからの違い:
-
オプションの position 引数は、FreeBASICで新規作成。
-
QB は、ASC のワイド文字型文字列バージョンをサポートしません。
参照:
ページ歴史:2022-01-30 01:03:57
日本語翻訳:WATANABE Makoto、原文著作者:SysOp
