BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   FML を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


文字列を変換する関数

ユーザ指定の型 FLD_STRING への変換および FLD_STRING からの変換を処理するために、以下の関数が提供されています。

これらの関数は、対応する非文字列用の関数を呼び出し、FLD_STRING 型と len 0 を提供します。ただし、Ffinds が返すポインタの有効期間は、CFfind の場合と同じです。

これらの関数の説明については、『BEA Tuxedo FML リファレンス』を参照してください。

Ftypcvt

CFaddCFchgCFgetCFgetallocCFfind の各関数は、Ftypcvt を使用して、適切なデータ変換を行います。Ftypcvt32 関数は、フィールド型 FLD_PTRFLD_FML32、および FLD_VIEW32 では失敗します。Ftypcvt を使用する場合の形式は、次のとおりです。この形式は、パラメータの順序に関する規則に準拠しません。

char*
Ftypcvt(FLDLEN *tolen, int totype, char *fromval, int fromtype, FLDLEN fromlen)

以下はパラメータの説明です。

Ftypcvt は、fromlen で指定された長さの fromtype 型の *fromval の値 (fromtypeFLD_CARRAY の場合。それ以外の場合、fromlenfromtype から算出される。) を、totype 型の値に変換します。Ftypcvt が成功すると、変換後の値に対するポインタが返され、*tolen に変換後の長さが設定されます。失敗すると、Ftypcvt から NULL が返されます。CFchg 関数を使用した次の例を参照してください。

CFchg(fbfr,fieldid,oc,value,len,type)
FBFR *fbfr; /* フィールド化バッファ */
FLDID fieldid; /* 変更されるべきフィールド */
FLDOCC oc; /* 変更されるべきフィールドのオカレンス */
char *value; /* 新しい値に対するポインタ */
FLDLEN len; /* 新しい値の長さ */
int type; /* 新しい値のタイプ */
{
char *convloc; /* 変換された値に対するポインタ */
FLDLEN convlen; /* 変換された値の長さ */
extern char *Ftypcvt;

/* 値をフィールド化バッファ・タイプに変換 */
if((convloc = Ftypcvt(&convlen,FLDTYPE(fieldid),value,type,len)) == NULL)
return(-1);

if(Fchg(fbfr,fieldid,oc,convloc,convlen) < 0)
return(-1);
return(1);
}

Ftypcvt を直接呼び出して、フィールド化バッファを変更せずにフィールド値を変換することができます。

詳細については、『BEA Tuxedo FML リファレンス』の「Ftypcvt、Ftypcvt32(3fml)」を参照してください。

変換の規則

以下は、変換時の規則の一覧です。oldval は、変換対象のデータ項目に対するポインタを表し、newval は変換後の値に対するポインタを表します。

次の表は、この節で示した変換規則をまとめたものです。

変換規則のまとめ

変換前の型

変換後の型

-

char

short

long

float

double

string

CARRAY

dec_t

char

-

cast

cast

cast

cast

st[0]=c

array[0]=c

d

short

cast

-

cast

cast

cast

sprintf

sprintf

d

long

cast

cast

-

cast

cast

sprintf

sprintf

d

float

cast

cast

cast

-

cast

sprintf

sprintf

d

double

cast

cast

cast

cast

-

sprintf

sprintf

d

string

c=st[0]

atoi

atol

atof

atof

-

drop 0

d

carray

c=array[0]

atoi

atol

atof

atof

add 0

-

d

dec_t

d

d

d

d

d

d

d

-


 

次の表は、前の表で使用されているエントリの説明です。

エントリの説明

エントリ

説明

-

srcdest が同じ型です。変換の必要はありません。

cast

C の代入演算子を使用した型変換によって、変換が行われます。

sprintf

sprintf 関数によって変換が行われます。

atoi

atoi 関数によって変換が行われます。

atof

atof 関数によって変換が行われます。

atol

atol 関数によって変換が行われます。

add 0

NULL バイトの連結によって変換が行われます。

drop 0

NULL 終了バイトを削除することによって変換が行われます。

c=array[0]

文字が配列の最初のバイトに設定されます。

array[0]=c

配列の最初のバイトが文字に設定されます。

c=st[0]

文字が文字列の最初のバイトに設定されます。

st[0]=c

文字列の最初のバイトが文字に設定されます。

d

decimal(3c) 変換関数


 

 

先頭へ戻る 前のトピックへ 次のトピックへ