Salve.
Io ho un file.txt strutturato nella seguente maniera:
ID (di 5 byte);Flag(1 byte) e altri campi
esempio:
1 ;L;altri campi
2 ;L;altri campi
3 ;L;altri campi
Ora io vorrei creare un metodo che mi effettui la cancellazione logica di un record. Ho pensato di far modificare il "Flag" impostandolo non piu' a "L", ma a "X".
Ho scritto il seguente codice:
codice:
void CancellazioneLogica(string NomeFile)
{
string id,IDcanc,riga;
cout << "Inserisci l'ID del record da cancellare" << endl;
cin >> IDcanc;
fstream file(NomeFile.c_str(),ios::in | ios::out);
while(!file.eof())
{
getline(file,id,'\0');
if (id==IDcanc)
{
file <<"X";
cout << "Cancellazione Logica effettuata "<< endl;
}
getline(file,riga,'\n');
}
file.close();
}
eseguendo questo codice, e scegliendo un ID da cancellare, presente nel file, il programma va in Loop, pero' non mi scrive sul file il carattere "X".