|
|
Fboolev、Fboolev32、Fvboolev、Fvboolev32(3fml)
名前
Fboolev()、Fboolev32()、Fvboolev()、Fvboolev32() - 評価ツリーに対するバッファの評価
形式
#include <stdio.h>
#include "fml.h"
int
Fboolev(FBFR *fbfr, char *tree)
int
Fvboolev(char *cstruct, char *tree, char *viewname)
#include "fml32.h"
int
Fboolev32(FBFR32 *fbfr, char *tree)
int
Fvboolev32(char *cstruct, char *tree, char *viewname)
機能説明
Fboolev() は、フィールド化バッファを指すポインタ (fbfr)、Fboolco() が返す評価ツリーのポインタ (tree) を利用して、フィールド化バッファが指定された論理条件と一致する場合は、true (1) を返し、そうでない場合は false (0) を返します。この関数は、フィールド化バッファあるいは評価ツリーのいずれも変更しません。評価ツリーは、Fboolco() によって以前コンパイルされたものです。
Fboolev32() は 32 ビット FML で使用されます。
Fvboolev() および Fvboolev32() は、同じ VIEW 機能を提供します。viewname パラメータは、フィールド・オフセットを取り出す VIEW を示し、Fvboolco() または Fvboolco32() で指定された VIEW と同じにする必要があります。
workstation プラットフォームでは、これらの関数はサポートされていません。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、ここで記述する関数、Fboolev()、Fboolev32()、Fvboolev()、または Fvboolev32() を呼び出すことができます。
戻り値
Fboolev() は、バッファ内の表現と評価ツリーが一致している場合、1 を返します。表現が評価ツリーと不一致の場合、0 を返します。この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、Fboolev() は異常終了し、Ferror を次の値に設定します。
fbfr バッファが適切なバウンダリで開始していません。
fbfr バッファがフィールド化バッファでない、または Finit() によって初期化されていません。
malloc() を使用しての領域の動的な割り当てが失敗しました。
呼び出された関数の引数の 1 つが無効でした (たとえば、Fboolev の tree パラメータに NULL が指定されている場合)。
認識できないフィールド名以外に、Fboolev() によって、論理表現に文法エラーが見つかりました。
VIEWDIR または VIEWFILES で指定したファイルに viewname が見つかりません。
viewname 検索中にプログラムで VIEWDIR または VIEWFILES で指定したファイルが 1 つ見つかりませんでした。
viewname 検索中にプログラムは VIEWDIR または VIEWFILES で指定したファイルを 1 つ読み込み用に開けませんでした。
viewname 検索中に VIEWDIR または VIEWFILES で指定したファイルの 1 つが破壊されていたか、VIEW ファイルではありませんでした。
viewname 検索中に malloc() が VIEW 情報を格納するための領域の割り当てに失敗しました。
使用例
Fboolco() の使用例でコンパイルした評価ツリーを使用します。
#include <stdio.h>
#include "fml.h"
#include "fld.tbl.h"
FBFR *fbfr;
...
Fchg(fbfr,FIRSTNAME,0,"John",0);
Fchg(fbfr,SEX,0,"M",0);
if(Fboolev(fbfr,tree) > 0)
fprintf(stderr,"Buffer selected¥¥¥¥n");
else
fprintf(stderr,"Buffer not selected¥¥¥¥n");
Buffer selected を出力します。
関連項目
「FML 関数の紹介」、Fboolco、Fboolco32、Fvboolco、Fvboolco32(3fml)、Fboolpr、Fboolpr32、Fvboolpr、Fvboolpr32(3fml)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|