ページの先頭行へ戻る
Interstage Charset ManagerStandard Edition V9 使用手引書 拡張データ変換機能編
FUJITSU Software

2.3.4 wconv_convert

wconv_convertについて説明します。

名前

wconv_convert -  レコードデータ変換を実行する

形式

int wconv_convert( wconv_t wd, 
                   const wconv_vdt * indata, 
                   wconv_vdt * outdata );

wd wconv_open、またはwconv_openExが返却した変換情報テーブルの値を指定します。
indata 変換元のレコードを格納したwconv_vdt 型のポインタを設定します。
outdata 変換先のレコードを格納したwconv_vdt 型のポインタを設定します。

機能説明

wconv_convert は、indataに格納されたレコードデータを変換情報テーブルに従って書式を変換し、outdata へ出力します。

wconv_convertでは、各項目のデータの長さを指定することができます。

データの長さは、項目変数(項目のデータ長)として指定します。

データの長さは、項目のサイズより短くしてください。

wconv_vdt 型には、次の指定をします。wconv_vdt型については、"2.6.3 wconv_vdt(レコードデータ)"を参照してください。

wconv_vf型には、次の指定をします。wconv_vf型については、"2.6.4 wconv_vf(項目変数)"を参照してください。

indataで項目変数が指定された項目の内容により、以下のように動作します。

また、outdataで項目変数が指定された項目の内容により、以下のように動作します。

wconv_convert はindataの内容により、以下のように動作します。

変換した結果、項目書式で指定された変換先レコードの項目のサイズが変換先データ長よりも短い場合は、データは切り落とされます。変換先レコードの項目のサイズが変換先データ長よりも長い場合で、かつ、項目変数のデータの長さに-1が指定された場合は、変換先項目のサイズを変換先データ長の長さにします。

項目変数が指定されていない場合は、残りの領域には何も出力しません。

【indataの数値データ項目の項目変数のデータ長に“0”を指定した場合】

【変換先レコードの項目のサイズが変換後のデータよりも短い場合】

【変換先レコードの項目のサイズが変換後のデータよりも長い場合】

【変換できないデータがあった場合文字コード項目

【変換できないデータがあった場合数値データ項目

戻り値

変換が成功した場合は、0を返却します。

変換エラーがあった場合は、エラーのあった項目数を返却します。

変換の中止が指定されていた場合、-1を返却し次の項目の変換は行いません。

その他のエラーがあった場合、-1を返却します。

エラー

エラー情報は、wconv_error ()で取得します。

【エラーコード】

EINVAL:

変換元データ長が異常です。

ENOMEM:

メモリ不足が発生しました。

EBADE:

コード変換エラーが発生しました。または、未定義文字が出現時に項目の変換中止の指示があったので中止しました。

ECANCELED:

エラー時にレコードの変換中止の指示があったので処理を中止しました。

【エラー原因】

E2BIG:

変換先レコードの項目のサイズが不足しました。

EILSEQ:

変換元データの符号または数値が不正です。または、変換元コード列に不正なコードか未定義文字が存在しました。

ERANGE:

オーバーフローまたはアンダーフローが発生しました。

wconv_convert関数の例

2.3.1 wconv_open”のwconv_open関数の例を参照してください。