User manual - DT-900 高速ファイルサーチライブラリver.1.00(2006年9月29日)
Hash Library User’s Manual 17
/*--------------------- HASH READ START ----------------------------------*/
fpData = fopen("a:\\sample.dat","r");
fpIndex = fopen("b:\\sample.idx","r");
iDisplayMessage ("HASH read started : ");
pszBuff = malloc((size_t)(40));
if (pszBuff == NULL) return -1;
pszReadBuf = malloc((size_t)(40));
if (pszReadBuf == NULL) return -1;
for (lCount=0; lCount < 10; lCount++) {
memset (pszBuff, 0, (size_t)40);
sprintf (pszBuff, "%08lX", lCount);
iI = iHashRead( pszBuff, fpData, fpIndex, pszReadBuf);
if (iI != 0)
break;
}
if (iI != 0)
iDisplayMessage ("** ERROR: HashRead **");
free (pszBuff);
free (pszReadBuf);
iDisplayMessage ("HASH read over\n");
fclose (fpData);
fclose (fpIndex);
/*--------------------- HASH READ END ----------------------------------*/
iHashRead()
iHashRead()iHashRead()
iHashRead() 関数は、インデックスファイルおよびデータファイルからデータを読み出します。従って、
インデックスファイルおよびデータファイルの内容は変化しません。
/*--------------------- HASH ADD START ----------------------------------*/
fpData = fopen("a:\\sample.dat","r+");
fpIndex = fopen("b:\\sample.idx","r+");
pszBuff = malloc((size_t)(40));
if (pszBuff == NULL) return -1;
iDisplayMessage ("HASH add started : ");
for (lCount=10; lCount < 20; lCount++) {
memset (pszBuff, 0, (size_t)40);
sprintf (pszBuff, "%08lX", lCount);
iI = iHashAdd( pszBuff, fpData, fpIndex, "nn");
if (iI != 0)
break;
}
レコード0~9は、既にデータファイルに存在します。 ここでは、レコード10~20の10レコードをデー
タファイルに追加します。
if (iI != 0)
{
iDisplayMessage ("** ERROR: HashAdd **");
sprintf (pszBuff, "%d",iI);
iDisplayMessage (pszBuff);
}
iDisplayMessage ("HASH add over\n");
free (pszBuff);
fclose (fpData);
fclose (fpIndex);
/*--------------------- HASH ADD END ----------------------------------*/