Den richtigen Datensatz findet man in einer Datei sequentiell. Dazu dienen die C-Funktionen LibFileFindNext und LibFileFindPrev. Diese finden den nächsten beziehungsweise den vorigen Datensatz und setzen den Dateizeiger in FILE_INFO entsprechend.
Das Beispiel zeigt die Suche nach dem Datensatz mit der "Nummer" nr (0..nmax).
FILE_BUF fb;
FILE_INFO fi;
int count;
fb.fsb_main_entry_ = mode << 4; /* mode */
fb.fsb_sub_entry_ = sub; /* submode */
fb.fsb_scrt_info_ = secret; /* Secret information
0x80 - open
0x00 - secret
*/
finf.fp = 0xffff; /* "first search" */
finf.kind = FILE_KIND_BIN; /* or FILE_KIND_TEXT */
count=0
LibFileFindNext(&fb,&fi,0x00); /* first search */
while (
(fi.fp!=0xffff) && /* check for end of file */
(count<nr) /* record nr reached ? */
)
{
LibFileFindNext(&fb,&fi,0x00); /* first search */
count ++;
}
if (fi.fp==0xffff) /* not found */
return FALSE; /* error handling */
|
In der Praxis wird oft auch die Suche nach Inhalten erfolgen, was dann natürlich das Einlesen des Datensatzes erfordert.
Für Ergänzungen wenden Sie sich bitte an:
Jürgen Wagner