Здравствуйте, Lrad!
int index;
typedef struct addr // структура
{
char Fio[50] // ФИО 50 символов
char kniga[50] // Книга 50 символов
…
} ros ;
ros * zapis;
если количество записей не известно то создается динамический массив(
ros * zapis;
a = new vopros[index]
![](https://rfpro.ru/images/smiles/28.gif)
…
// запись файла
TMemoryStream *tmp = new TMemoryStream();
__int64 Size=0 ;
tmp->Position=0;
tmp->Size=0;
tmp->Write(&index,sizeof(int)); // запись а количестве записей
for (int i=0 ; index>i; i++) {
tmp->Write(&zapis [i],sizeof(ros) ) ;
}
Size=r->Size;
tmp->Write(&Size,sizeof(__int64));
r->Position=0;
tmp->CopyFrom(r,Size);
tmp->SaveToFile(“C:\\файл.000 ”);
tmp->Free();
…..
TMemoryStream *tmp = new TMemoryStream(); // открытие и чтение
__int64 Size=0 ;
tmp->Position=0;
tmp->Size=0;
tmp->LoadFromFile(C:\\файл.000 ”) ;
tmp->Read(&index,sizeof(int));
a = new ros[index] ;
for (int i=0 ; index>i; i++) {
tmp->Read(&zapis [i],sizeof(ros) ) ;
}
tmp->Free();
…
поиск можно осуществить в цикле обращаясь к полям структуры (zapis [i]. Fio==”что ищем ” )