void delstruct()
{

//Вывести содержимое структуры на экран и спросить номер удаляемой структуры

//или попросить указать, какую структуру искать,
//что-бы пометить как удаленная
	char t[80]; //Массив-буффер
	char name[85];
	float cost_ts; //Переменная для новой стоимости
	fout << "\n\n	     удадение данных из файла\n\n";
	//Открытие файла с данными для поиска и коррекции структур
	fin.open("delete.dat", ios::in);
	if(!fin)
		{
		pri("Ошибка открытия файла данных удаления данных");
		goto ExitFromDeleting;
		}
	while(fin.peek()!=EOF)
		{
		fin >> name;
		int k=0;

		//Открытие бинарного файла в режиме чтения/записи
		io.open(FileName, ios::in|ios::out|ios::binary);
		if(!io)
			{
			pri("Ошибка открытия файла для удаления из него данных");
			getch();
			break;
			}
		//Пока читаются данные - цикл поиска структуры
		while(io.read((char *)&st, z))
			if(!strcmp(st.s_name, name))
				{
				//Установка Флага "Удалён" на удаляемую структуру
				strcpy(st.flags, "deleted");
				p();
				//Указатель записи в файле перемещается на
				//одну структуру назад
				io.seekp(-z, ios::cur);
				//Запись в файл откорректированной структуры
				io.write((char*)&st, z);
				k++;
				}
		if(!k) fout << "[Секция "<< name <<" не найдена!]"<<endl;
		io.close();
		}
	fin.close(); io.close();
printf("\n\nВыбранные записи помечены для удаления.\n\n");
read_fs(3);
printf("\n\nНажмите любую клавишу дял начала удаления данных...\n\n");
getch();
//Произвести удаление помеченных структур

int deleting;
deleting = open(FileName, O_BINARY | O_RDWR);
if(!deleting)
	{
	pri("Ошибка открытия файла для удаления данных");
	exit(7);
	}

register int FSize;
register int DelFlag;

do_delete:
/*
Цикл будет удалять помеченные структуры по одной
Он будет выполняться до тех пор, пока все помеченные
структуры не будут удалены
*/
DelFlag=0;
FSize=0;
counter=0;
lseek(deleting, 0L, SEEK_SET);

while(read(deleting, (char *)&st, z))
{
FSize+=z;
	if((!strcmp(st.flags, "deleted"))||(!strcmp(st.s_name, ""))
	||(!strcmp(st.FN_trainer, ""))
	||(st.delay_tr==0)
	||(st.cost_ts==0)
	||(st.sprtmen_q==0))
		{
		counter++;
		FSize-=z;
		while(read(deleting, (char *)&st, z))
			{
			//Копирование следующей структуры на место помеченой структуры
			lseek(deleting, -z, SEEK_CUR);
			lseek(deleting, -z, SEEK_CUR);
			write(deleting, (char*)&st, z);
			lseek(deleting, +z, SEEK_CUR);
			FSize+=z;
			if(!strcmp(st.flags, "deleted")) DelFlag++;
			}
		break;
		}
}
chsize(deleting, FSize);
if (DelFlag) goto do_delete;
if (counter) {prnborder("Удаление данных завершено", 2); DeleteSnd();}
else {prnborder("Ошибка удаления данных", 4); ErrSnd();}

close(deleting);
ExitFromDeleting:
}
