Ну так вот. У меня опять не выходит...
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
Ещё надо бы редактировать запись. Вот пользователь тыкнул на какую-то строку стринггрида, и надо её отредактировать (изменить название, автора ...)
FILE *db;
rewind(db);
ptr=(kniga*)malloc(sizeof(kniga));
while (!feof(db))
while (fread(ptr,sizeof(kniga),1,db))
if (ptr->nomer==a)
{
strcpy(ptr->nazvanie,Form3->Edit1->Text.c_str());
strcpy(ptr->avtor,Form3->Edit2->Text.c_str());
strcpy(ptr->zhanr,Form3->Edit3->Text.c_str());
strcpy(ptr->izdatelstvo,Form3->Edit4->Text.c_str());
strcpy(ptr->god_izdaniya,Form3->Edit5->Text.c_str());
Form1->StringGrid1->Cells[0][a]=IntToStr(ptr->nomer);
Form1->StringGrid1->Cells[1][a]=ptr->nazvanie;
Form1->StringGrid1->Cells[2][a]=ptr->avtor;
Form1->StringGrid1->Cells[3][a]=ptr->zhanr;
Form1->StringGrid1->Cells[4][a]=ptr->izdatelstvo;
Form1->StringGrid1->Cells[5][a]=ptr->god_izdaniya;
break;
}
a - номер строки которую выбрал пользователь для редактирования.
Из Form3->Edit1->Text.c_str() и т.д. записываются новые данные (вместо старых) - таким образом происходит редактирование
Вобщем происходит ошибка:
"Access violation at address 32665A01 in module 'CC3260MT.DLL'. Write of address F82686B0."
Что я на этот раз не так сделал?
Номер является уникальной характеристкой, если фамилия автора может совпадать, то номер - нет. если нашли... стоп... я же не записывал, его в файл (номер). может в этом ошибка?!