ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Character code
|
Character code ( character ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
character | 文字 |
![]() |
取得したい文字を得るためのコード | |||||
戻り値 | 倍長整数 |
![]() |
文字コード | |||||
Character code コマンドは、character のUnicode UTF-16 コード(1から65535の間)を返します。
characterが1文字より多い場合、 Character code は最初の文字だけをコードに変換します。
Character code の逆の変換を実行する関数が Char コマンドです。UTF-16コードが示す文字を返します。
通常、大文字と小文字は同じものとして扱われますが、Character codeを使用すれば大文字と小文字を区別できます。以下の結果はTrueになります。
("A"="a")
一方、以下の結果はFalseになります。
(Character code("A")=Character code("a"))
以下の例は、文字列"ABC"の最初の文字Aのコードを返します。
GetCode:=Character code("ABC") `GetCodeには 65が返されます。これは“A”の文字コードです
以下の例は、キャリッジリターンとタブを検査します。
For($vlChar;1;Length(vtText))
Case of
:(vtText[[$vlChar]]=Char(Carriage return))
` 何らかの処理
:(vtText[[$vlChar]]=Char(Tab))
` 何らかの処理
:(...)
` ...
End case
End for
サイズの大きなテキストに対して何度も実行する場合、以下のように記述した後コンパイルすると、この検査は高速に処理されます。
For($vlChar;1;Length(vtText))
$vlCode:=Character code(vtText[[$vlChar]])
Case of
:($vlCode=Carriage return)
` 何らかの処理
:($vlCode=Tab)
` 何らかの処理
:(...)
` ...
End case
End for
2 番目の例題が高速に処理される理由は2つあります。ループでは1文字だけが参照され、キャリッジリターンやタブを検査する際に、文字列の比較ではなく倍長整数による比較が行われています。CRやTAB等の一般的なコードを使用して作業する場合には、この手法を利用してください。
プロダクト: 4D
テーマ: 文字列
番号:
91
変更: 4D v11 SQL
ランゲージリファレンス ( 4D v20 R7)