ILE COBOL 解説書


DISPLAY-OF

DISPLAY-OF 関数は、特定コード・ページ表現に変換される引数-1 のコンテントで構成される英数字ストリングを戻します。関数のタイプは英数字です。

形式 1: ターゲット CCSID の指定
 
>>-FUNCTION DISPLAY-OF--(--引数-1--+--------+--)---------------><
                                   '-引数-2-'
 
 
引数-1
クラス国別でなければなりません。引数-1 は、変換のソース・ストリングを識別します。

+----------------------------------IBM 拡張----------------------------------+

引数-2
整数でなければなりません。引数-2 は、変換のターゲット・コード・ページを識別します。引数-2 は、EBCDIC、 ASCII、UTF-8、または EUC コード・ページを識別する有効な CCSID 番号でなければなりません。EBCDIC または ASCII CCSID は、SBCS、DBCS、または混合 SBCS/DBCS であるコード・ページを識別できます。

+------------------------------End of IBM 拡張-------------------------------+

引数-2 が省略された場合、ターゲット・コード・ページは、ソース・コードがコンパイルされたときの CCSID コンパイラー・オプション用に有効になるターゲット・コード・ページです。有効なターゲット・コード・ページが 65535 である場合、デフォルトの CCSID 37 が使用されます。

戻り値は、ターゲット・コード・ページ表現に変換される引数-1 の文字で構成される英数字ストリングです。ソース文字をターゲット・コード・ページの文字に変換できない場合、ソース文字は、1 バイト EBCDIC ターゲット・コード・ページに対してはシステム定義の置換文字 X'3F' で、DBCS コード・ページに対しては X'FEFE' で置換されます。例外条件は発生しません。

戻り値の長さは、引数-1 のコンテントおよびターゲット・コード・ページの特性によって異なります。

例外: 変換が失敗すると、重大なランタイム・エラーが発生します。国別データ (UCS-2、CCSID 13488 を使用してコード化された) からターゲット CCSID への変換がオペレーティング・システムでサポートされていることを確認してください。

使用上の注意

  1. ターゲット・コード・ページが混合 SBCS/DBCS EBCDIC コード・ページである場合、戻り値は、シフトアウトおよびシフトイン制御文字で区切られている DBCS サブストリングを含むことができます。
  2. 整数引数-2 を指定した DISPLAY-OF 関数は、CCSID コンパイラー・オプションで指定されたものと異なるコード・ページで表示される文字データを生成するために使用されます。そのデータへの後続の COBOL 操作は、 データが CCSID コンパイラー・オプションで指定される EBCDIC コード・ページで表示されることを想定する暗黙の変換を伴うことができるので、細心の注意が必要です。
形式 2: ユーザー置換文字の指定
 
>>-FUNCTION DISPLAY-OF--(--引数-1--引数-3--)-------------------><
 
 
引数-1
クラス国別でなければなりません。引数-1 は、変換のソース・ストリングを識別します。
引数-3
1 文字位置の長さを持つ、クラス英字、英数字または DBCS のリテラルまたはデータ項目でなければなりません。引数-3 は、対応する英数字または DBCS 文字を持たない国別文字の変換で使用される英数字または DBCS 置換文字を指定します。ユーザー置換文字は、EBCDIC および ASCII コード・ページでのみサポートされます。EUC などの別のコード・ページ用に使用される場合、コンパイル・エラー・メッセージ (重大度 30) が発行され、引数-3 は無視されます。

ユーザー置換文字は、有効なターゲット・コード・ページ CCSID と同じ CCSID を持ちます。有効なターゲット・コード・ページ CCSID が 2 バイトである場合、2 バイトの置換文字 (DBCS) のみを引数-3 として指定できます。有効なターゲット・コード・ページ CCSID が 1 バイトまたは混合バイトである場合は、1 バイトの置換文字 (英字または英数字) のみを引数-3 として指定できますが、混合バイト CCSID 用の 2 バイト置換文字をユーザー置換文字で置換することはできません。ターゲット CCSID タイプおよび引数-3 クラスの間の不整合がコンパイル時に検出された場合、コンパイル・エラー・メッセージ (重大度 30) が発行されます。不整合がランタイム時に検出された場合、重大なランタイム ・メッセージが発行されます。プログラムを継続するために、ユーザーがメッセージに 'G' で応答すると、引数-3 は無視されます。

ターゲット・コード・ページは、ソース・コードのコンパイル時に CCSID コンパイラー・オプション用に有効になるターゲット・コード・ページです。有効な CCSID コンパイラー・オプションが 65535 である場合、デフォルトの CCSID 37 が使用されます。

戻り値は、ターゲット・コード・ページ表現に変換される引数-1 の文字で構成される英数字ストリングです。ソース文字をターゲット・コード・ページの文字に変換できない場合、ソース文字は、ユーザー置換文字引数-3 で置換されます。例外条件は発生しません。

戻り値の長さは、引数-1 のコンテントおよびターゲット・コード・ページの特性によって異なります。

例外: 変換が失敗すると、重大なランタイム・エラーが発生します。ソース ccsid (UCS-2) からターゲット CCSID への変換がオペレーティング・システムでサポートされていることを確認してください。

DISPLAY-OF および NATIONAL-OF 組み込み関数をネストして、任意の CCSID から任意の他の CCSID に簡単に変換することができます。

たとえば、以下のコードは、EBCDIC ストリングを ASCII ストリングに変換します。

  77  EBCDIC-CCSID PIC 9(4) BINARY VALUE 1140.
  77  ASCII-CCSID PIC 9(4) BINARY VALUE 819.
  77  Input-EBCDIC PIC X(80).
  77  ASCII-Output PIC X(80).
  . . .
* Convert EBCDIC to ASCII
      Move Function
        Display-of
          (Function National-of
             (Input-EBCDIC EBCDIC-CCSID)
            ASCII-CCSID
          )
      to ASCII-output 


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]