Воспользовался примером сранения. Самый долгим, но самым легко программируемым. Вот только как всегда есть небольшие косяки.
Пример такой:
#define EOS '\0'
void BF(char *x, char *y, int m) {
int i;
/* Ищем до конца, вообще говоря можно до позиции n-m */
for(i=0; *y!=EOS; i++, y++) if(memcmp(y,x,m) == 0) OUTPUT(i);
}
Написал я:
#define EOS '\0
...
int l,a=ComboBox1->ItemIndex;
unsigned int i;
l=strlen(Edit1->Text.c_str());
while (!feof(db))
while (fread(ptr,sizeof(kniga),1,db))
for (i=0;i<strlen(ptr->nazvanie);i++)
if (memcmp(ptr->nazvanie,Edit1->Text.c_str(),l)==NULL)
{
k++;
Form1->StringGrid1->Cells[0][k]=ptr->nazvanie;
Form1->StringGrid1->Cells[1][k]=ptr->avtor;
Form1->StringGrid1->Cells[2][k]=ptr->zhanr;
Form1->StringGrid1->Cells[3][k]=ptr->izdatelstvo;
Form1->StringGrid1->Cells[4][k]=IntToStr(ptr->god_izdaniya);
Form1->StringGrid1->Cells[5][k]=IntToStr(ptr->kolvo_str);
if (k!=1) Form1->StringGrid1->RowCount++;
break;
}
Работает, но не так. Вот если слово "Мать" есть и я напишу "Ма", то найдёт. Если "ать", или что-нить где не сначала начинается, то не найдет...