void Cancella()
{
int cod, pos;
ifstream fin("rubrica.dat", ios::in);
fin.seekg(-(sizeof amico),ios::end);
fin.read((char*)&amico,sizeof amico);//per amico.cod
fin.close();
cout<<"\n\n\tInserisci il campo codice della persona da cancellare: ";
cout<<"\n\tPer uscire digita 0 ";
cin>>cod;
while(cin.fail())
{
cout<<"\n\tValore non valido\n\tReinserisci il campo codice: ";
cin.sync();
cin>>cod;
}
while(cod<0 || cod>(amico.card))
{
cout<<"\n\tScelta non valida!\n\tReinserisci il codice: ";
cin>>cod;
}
while(cod!=0)// do
{
fstream file("rubrica.dat", ios::in| ios::out|ios::binary);
if(!file)
{
cout<<"\n\tErrore nell' apertura del file\n";
cout<<"\tPremi Invio per continuare";
cin.sync();
cin.get();
exit(1);
}
file.clear();
pos=(cod-1)*sizeof amico;
file.seekg(pos);
file.read((char *) &amico, sizeof amico);
system("cls");
cout<<"\n\n\tIn memoria ci sono questi dati:\n\n";
cout<<setw(11)<<setfill(' ')<<setiosflags(ios::left);
cout<<" Matricola";
cout<<setw(25)<<setfill(' ')<<setiosflags(ios::left);
cout<<"Cognome";
cout<<setw(25)<<setfill(' ')<<setiosflags(ios::left);
cout<<"Nome";
cout<<setw(11)<<setfill(' ')<<setiosflags(ios::left);
cout<<"Cellulare";
cout<<setw(11)<<setfill(' ')<<setiosflags(ios::left);
cout<<"Codice"<<endl<<endl;
cout<<" ";
cout<<setw(11)<<setfill(' ')<<setiosflags(ios::left);
cout<<amico.ID;
cout<<setw(25)<<setfill(' ')<<setiosflags(ios::left);
cout<<amico.cognome;
cout<<setw(25)<<setfill(' ')<<setiosflags(ios::left);
cout<<amico.nome;
cout<<setw(11)<<setfill(' ')<<setiosflags(ios::left);
cout<<amico.cell;
cout<<setw(11)<<setfill(' ')<<setiosflags(ios::left);
cout<<amico.card;
cout<<"\n\n\tCancellazione dall' archivio ";
cout<<".";_sleep(300);cout<<".";_sleep(300);cout<<".";_sleep(300);
file.seekg(pos); //si riposiziona all' inizio del record
if(file.fail())
{
cout<<"\n\tErrore di posizionamento \n";
cout<<"\tPremi Invio per continuare";
cin.sync();
cin.get();
exit(5);
}
strcpy(amico.cognome, "*");
//scrive il record
file.write((char *) &amico, sizeof amico);
cout<<"\n\n\tElemento cancellato!\n";
file.close();
cout<<"\n\tInserisci il campo codice del dipendente da cancellare: ";
cout<<"\n\tPer uscire digita 0 ";
cin>>cod;
}
return;
}