MBCS 問合せルーチン

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 問い合わせの例