> > 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() の動作に疑問があるのですが使用方法に問題があるのでしょうか。