HAMLOG開発室は、HAMLOGに関連したプログラム開発(C、パスカル、VB言語等、又はDLL)についての
専用BBSです。プログラム言語に関する投稿以外は通常のHAMLOG相談室に投稿して下さい。
HAMLOG開発室BBS

> > db->rcount++;
> > Buff[0] = ' ';
> > rcd = dbf_write2(db, db->rcount, Buff, 0, db->rsize);
何とか書き込めるようになりました。 Tks
またまた、???です。
書き込んだ、データを参照して、登録済でないものを登録しようと、検索するためとりあえず次様にしてみました(インデックス・ファイルを使用したかったのですが、次の課題として)。
long lIx= 1;
for (; lIx <= dbf_rcount(&hJca); lIx++)
{  
  if (dbf_read(&hJca, lIx, &fbufJca) != SUCCESS)
    continue;
if (strncmp(fbufJca.SaFix, cSaFix, 3) == 0)
    break;
}


if (lIx >= dbf_rcount(&hJca))
  lIx=0;

これで、cSaFixがKeyで lIxは同じKeyがあればそのレコード合致なければ 0を返すつもりですが、常に0にしかなりません。
調べますと dbf_read(&hJca, lIx, &fbufJca) をlIx=1で実行すると dbf_rcount(&hJca) が0 に変化していました。hJca.rcount がなぜかdbf_read() で変化しているようです。無理やりhJca.rcountをもとに書き戻す戻すようにすれば、思うように動作いたしました。教えて頂いたdbf_append()と組み合わせるとうまくマスターが出来上がりそうです。dbf_read() の動作に疑問があるのですが使用方法に問題があるのでしょうか。
  

2014/11/17(Mon) 08:38:17  [No.614]


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)
- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
Call 名前 ※必須
文字色
Eメール
タイトル sage
URL
メッセージ 手動改行 強制改行 図表モード
メッセージには上記と同じURLを書き込まないで下さい
画像File  (130kBまで)
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
プレビュー