Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

ストリング記述子

ストリング記述子では、最初の 2 バイトは、ストリングの最大長を指定します。 この最大長は常にネイティブ・フォーマットで保持されます。

3 番目のバイトには、(例えば、VARYING ストリングのストリング長の保持フォーマットがリトル・エンディアンなのかビッグ・エンディアンなのか、また WIDECHAR ストリングのデータ保持フォーマットがリトル・エンディアンなのかビッグ・エンディアンなのかを示すフラグなど) さまざまなフラグが含まれます。

非可変ビット・ストリングのストリング記述子では、 4 番目のバイトはビット・オフセットを表します。

CHARACTER ストリングのストリング記述子では、4 番目のバイトは、コンパイラー CODEPAGE オプションをエンコードします。

ストリング記述子の宣言は次のとおりです。

declare
  1 dso_string based( null() ),
    2 dso_string_length          fixed bin(15),
    2 dso_string_flags,
      3 dso_string_is_varying           bit(1),
      3 dso_string_is_varyingz          bit(1),
      3 dso_string_has_nonnative_len    bit(1), /* for varying     */
      3 dso_string_is_ascii             bit(1), /* for char        */
      3 dso_string_has_nonnative_data   bit(1), /* for wchar       */
      3 *                               bit(1), /* reserved, '0'b  */
      3 *                               bit(1), /* reserved, '0'b  */
      3 *                               bit(1), /* reserved, '0'b  */
    2 * union,
      3 dso_String_Codepage      ordinal ccs_Codepage_Enum,
      3 dso_string_bitofs        fixed bin(8) unsigned,
    2 dso_string_end     char(0);

コード・ページエンコードで指定可能な値は、次のように定義されます。

define ordinal
  ccs_Codepage_Enum
    ( ccs_Codepage_01047  value(1)
     ,ccs_Codepage_01140
     ,ccs_Codepage_01141
     ,ccs_Codepage_01142
     ,ccs_Codepage_01143
     ,ccs_Codepage_01144
     ,ccs_Codepage_01145
     ,ccs_Codepage_01146
     ,ccs_Codepage_01147
     ,ccs_Codepage_01148
     ,ccs_Codepage_01149
     ,ccs_Codepage_00819
     ,ccs_Codepage_00813
     ,ccs_Codepage_00920
     ,ccs_Codepage_00037
     ,ccs_Codepage_00273
     ,ccs_Codepage_00277
     ,ccs_Codepage_00278
     ,ccs_Codepage_00280
     ,ccs_Codepage_00284
     ,ccs_Codepage_00285
     ,ccs_Codepage_00297
     ,ccs_Codepage_00500
     ,ccs_Codepage_00871
     ,ccs_Codepage_01026
     ,ccs_Codepage_01155
    ) unsigned prec(8);

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)