MBCS 問合せルーチンは,マルチバイト文字の長さの最大値,文字列中のマルチバイト文字の長さ,数,および位置,そしてマルチバイト文字が先頭バイトと後続バイトのどちらなのかということに関する情報を提供します。これらのルーチンを次表に要約します。
NLS ライブラリーは,NLS モジュールに定義されているパラメタ MBLenMax を,コードページ中の任意文字の最大長 (バイト数) に設定します。このパラメタは比較や検証の際に有用です。現在のコードページの最大文字長を調べるには,MBCurMax 関数を使用してください。
MBCS 問合せルーチン
名前 | 手続の形式 | 説明 |
MBCharLen | 関数 | 文字列中の最初のマルチバイト文字長を返します。 |
MBCurMax | 関数 | 現在のコードページでの可能な最長のマルチバイト文字を返します。 |
MBLead | 関数 | 特定の文字がマルチバイト文字の先頭バイトであるかどうかを判定します。 |
MBLen | 関数 | 後に続く空白を含めて文字列中のマルチバイト文字数を返します。 |
MBLen_Trim | 関数 | 後に続く空白を含めずに文字列中のマルチバイト文字数を返します。 |
MBNext | 関数 | 指定された文字列位置の直後にあるマルチバイト文字の第 1 バイトの文字列位置を返します。 |
MBPrev | 関数 | 指定された文字列位置の直前にあるマルチバイト文字の第 1 バイトの文字列位置を返します。 |
MBStrLead | 関数 | 文字列中の特定のバイトが先頭バイトであるかどうかを判定する文脈依存の検証を実行します。 |
次に例を示します。
USE DFNLS CHARACTER(4) str INTEGER status status = NLSSetLocale ("Japan") str = "高徳" PRINT '(1X,''String by char = '',\)' DO i = 1, len(str) PRINT '(A2,\)',str(i:i) END DO PRINT '(/,1X,''MBLead = '',\)' DO i = 1, len(str) PRINT '(L2,\)',mblead(str(i:i)) END DO PRINT '(/,1X,''String as whole = '',A,\)',str PRINT '(/,1X,''MBStrLead = '',\)' DO i = 1, len(str) PRINT '(L1,\)',MBStrLead(str,i) END DO END
次図は,上のコードの str ="高徳" をさまざまな形で処理した出力を示しています。
MBCS 問い合わせの例