3.10.5 Daten suchen

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