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:
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".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(); }

Rispondi quotando