Character code

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11 (Modified)


Character code (character) 数値

引数説明
character文字列取得したい文字を得るためのコード
戻り値数値文字コード

説明

Character codeコマンドは、characterの現在の文字コードを返します。

・データベースがUnicodeモード (4Dのバージョン11以降で作成されたデータベースのデフォルトモード) で動作している場合、コマンドは、 characterのUnicode UTF-16コード(1から65535の間) を返します。.

・データベースがASCII互換モードで動作している場合、コマンドはcharacterのASCIIコード (0から255の間) を返します。

4Dで文字列を使用する際の異なるモードについては、ASCII コードの節を参照してください。

characterが1文字より多い場合、Character codeは最初の文字だけをコードに変換します。

Character codeの逆の変換を実行する関数がChar関数です。UTF-16またはASCIIコードで示す文字を返します。

重要: ASCII互換モードでは、まだ別のASCIIマップに変換していないすべてのテキスト値、フィールド、または変数はMacintosh上およびWindows上の双方ともにMac OSエンコードです。詳細については、ASCII コードの節を参照してください。

例題

1. 通常、大文字と小文字は同じものとして扱われますが、Character codeを使用すれば大文字と小文字を区別できます。以下の結果はTrueになります。

   ("A" = "a")

一方、以下の結果はFalseになります。

   (Character code("A")=Character code("a"))

2. 以下の例は、文字列"ABC"の最初の文字Aのコードを返します。

   GetCode:=Character code("ABC")  `GetCodeには 65が返されます。これは“A”の文字コードです

3. 以下の例は、キャリッジリターンとタブを検査します。

   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等の一般的なコードを使用して作業する場合には、この手法を利用してください。

参照

ASCII コード, Char, 文字参照記号.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次