次の方法で共有


変換

CONVERT 動詞は、ASCII 文字列を EBCDIC に変換するか、EBCDIC 文字列を ASCII に変換します。 変換する文字列をソース文字列と呼びます。 変換された文字列はターゲット文字列と呼ばれます。

次の構造体では、 CONVERT 動詞で使用される動詞制御ブロック (VCB) について説明します。

構文

  
struct convert {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        direction;  
    unsigned char        char_set;  
    unsigned short       len;  
    unsigned char FAR *  source;  
    unsigned char FAR *  target;  
};  

Members

オペコード
指定されたパラメーター。 操作コードを識別する動詞SV_CONVERT。

opext
予約済みフィールド。

reserv2
予約済みフィールド。

primary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定される主なリターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラー コードについては、リターン コードを参照してください。

secondary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるセカンダリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラー コードについては、リターン コードを参照してください。

方向
指定されたパラメーター。 変換の方向を指定します。 ASCII から EBCDIC に変換するには、SV_ASCII_TO_EBCDICを使用します。 EBCDIC から ASCII に変換するには、SV_EBCDIC_TO_ASCIIを使用します。

char_set
指定されたパラメーター。 ソース文字列の変換に使用する文字セットを指定します。 使用できる値には、SV_A (型 A 文字セット)、SV_AE (AE 文字セット型)、SV_G (ユーザー定義型 G 文字セット) があります。

len
指定されたパラメーター。 変換する文字数を指定します。

この長さとソース バッファーまたはターゲット バッファーの先頭からのオフセットは、セグメント境界を超えてはなりません。

ソース
指定されたパラメーター。 変換する文字列を含むバッファーのアドレスを指定します。

target
指定されたパラメーター。 変換された文字列を格納するバッファーのアドレスを指定します。

このバッファーは、 ソース パラメーターが指すバッファーと重複したり、一致したりする可能性があります。 この場合、変換されたデータ文字列によってソース データ文字列が上書きされます。

リターンコード

SV_OK
プライマリ リターン コード。動詞が正常に実行されました。

SV_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞が実行されませんでした。

SV_CONVERSION_ERROR

セカンダリ リターン コード。変換テーブルにソース文字列の 1 つ以上の文字が見つかりませんでした。 これらの文字は null (0x00) に変換されました。 動詞は引き続き実行されます。

SV_INVALID_CHARACTER_SET

セカンダリ リターン コード。 char_set パラメーターに無効な値が含まれていました。

SV_INVALID_DATA_SEGMENT

セカンダリ リターン コード。ソースまたはターゲット文字列を含むデータ バッファーが 1 つのセグメントに収まらないか、ターゲット セグメントが読み取り/書き込みセグメントではなかった。

SV_INVALID_DIRECTION

セカンダリ リターン コード。方向に無効な値が含まれていました。

SV_INVALID_FIRST_CHARACTER

セカンダリ リターン コード。A 型の最初の文字のソース文字列が無効でした。

SV_TABLE_ERROR

セカンダリ リターン コード。次のいずれかが発生しました。

  • ユーザーが書き込んだ型 G 変換テーブルを含むファイルが、環境変数 CSVTBLG で指定されませんでした。

  • テーブルの形式が正しくありません。

  • CSVTBLG 変数で指定されたファイルが見つかりませんでした。

    SV_COMM_SUBSYSTEM_NOT_LOADED
    プライマリ リターン コード。動詞の処理中に必要なコンポーネントを読み込んだり終了したりできませんでした。 したがって、通信は行われませんでした。 修正措置については、システム管理者に問い合わせてください。

    SV_INVALID_VERB
    プライマリ リターン コード。 opcode パラメーターが動詞の操作コードと一致しませんでした。 動詞は実行されません。

    SV_INVALID_VERB_SEGMENT
    プライマリ リターン コード。データ セグメントの末尾を超えて拡張された VCB。

    SV_UNEXPECTED_DOS_ERROR
    プライマリ リターン コード。次のいずれかの条件が発生しました。

  • 動詞の処理中に、Microsoft Windows システムでエラーが発生しました。 オペレーティング システムのリターン コードは、セカンダリ リターン コードを通じて返されました。 問題が解決しない場合は、修正措置についてシステム管理者に問い合わせてください。

  • CSV は、より一般的な Windows PostMessage 関数呼び出しではなく、Windows SendMessage 関数呼び出しを発行する別のアプリケーションによって呼び出されたメッセージ ループから発行されました。 動詞の処理は実行できません。

  • SendMessage がアプリケーションを呼び出したときに CSV が発行されました。 アプリケーションが SendMessage で呼び出されたかどうかを確認するには、 InSendMessage Windows API 関数呼び出しを使用します。

注釈

型 A 文字セットは、次の要素で構成されます。

  • 大文字

  • 数字 0 ~ 9。

  • 特殊文字 $、#、@、およびスペース。

    この文字セットは、システム指定型 A 変換テーブルでサポートされています。

    ソース文字列の最初の文字は、大文字または特殊文字 $、#、または @である必要があります。 スペースは末尾の位置でのみ使用できます。 小文字の ASCII 文字は、方向が ASCII から EBCDIC の場合、大文字の EBCDIC 文字に変換されます。

    AE 型の文字セットは、次の要素で構成されます。

  • 大文字

  • 小文字

  • 数字 0 ~ 9。

  • 特殊文字 $、#、@、ピリオド、およびスペース。

    この文字セットは、システム提供の型 AE 変換テーブルでサポートされています。

    ソース文字列の最初の文字には、スペースを除き、文字セット内の任意の文字を指定できます。 スペースは末尾の位置でのみ使用できます。

    変換時に、埋め込みブランク (最初の位置のブランクを含む) が0x00に変換されます。 このような変換は完了しますが、CONVERSION_ERRORはセカンダリ リターン コードとして返されます。これは、CSV ライブラリが指定されたデータに対して元に戻せない変換を完了したことを示します。

    Windows の場合、COMTBLG の説明は 、\SnaBase\Parameters\Client の下の Windows レジストリを指している必要があります。

    G 型変換テーブルのデータは、32 行の長い ASCII ファイルである必要があります。 各行は、16 文字を表す 32 桁の 16 進数で構成され、復帰と改行で終わる必要があります。 最初の 16 行 (256 文字) は、ASCII 文字の変換先の EBCDIC 文字を指定します。残りの 16 行は、EBCDIC 文字の変換先の ASCII 文字を指定します。

    16 進数の A から F は、大文字または小文字にすることができます。 ただし、IBM ES for OS/2 バージョン 1.0 との互換性を確保するために、これらの数字を大文字にすることもできます。

GET_CP_CONVERT_TABLEを使用して、G 型のユーザー作成変換テーブルをメモリに作成し、テーブルをファイルに格納できます。