Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - C. Cancellare record da database
Forum - C/C++ - C. Cancellare record da database

Avatar
Aleb (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/05/2011

Segnala al moderatore
Postato alle 15:20
Sabato, 07/05/2011
salve,
ho da poco iniziato a scuola a fare esercizi sui database, ho realizzato questo programma, ma non so fare il void canc (void). Io vorrei fare che inserito un cognome venga cancellato ed insieme ad esso tutti i dati relativi!
Codice sorgente - presumibilmente C++

  1. void canc(void)
  2. {
  3. int a,b;
  4. FILE * f;
  5. f=fopen("c:\\esc\\Archivi\\1.dat","r+b");
  6. cli rec_cli;
  7. char cogn[30];
  8. cout<<"Inserisci il cognome, e quindi il record che vuoi cancellare\n";
  9. cin>>cogn;
  10. do
  11.         {
  12.         b=fread(&rec_cli,70,1,f);
  13.         a=strcmpi(rec_cli.cogn,cogn);
  14.         if (a==0)
  15.                 {
  16.  
  17.                 break;
  18.                 }
  19.  
  20.          }
  21. while (b!=0);
  22. if (a!=0) cout<<"\nCognome non trovato!!\n";
  23. fclose(f);
  24. }



grazie!!

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 15:34
Sabato, 07/05/2011
Ciao!

Che problemi hai sulla gestione dei file?

Qui ci sono alcuni esempi: http://www.cplusplus.com/reference/iostream/fstream/

PM Quote
Avatar
Aleb (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/05/2011

Segnala al moderatore
Postato alle 9:48
Lunedì, 09/05/2011
non so cosa ci devo mettere dentro l'if per cancellare, modificare un record!

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:41
Martedì, 10/05/2011
Per modificare un file in un dato punto, vedi questo esempio: http://www.cplusplus.com/reference/iostream/ostream/seekp/

Purtroppo, non è possibile cancellare direttamente un record in un file.

PM Quote
Avatar
Aleb (Normal User)
Newbie


Messaggi: 3
Iscritto: 06/05/2011

Segnala al moderatore
Postato alle 0:14
Sabato, 14/05/2011
Ho trovato la soluzione:
eliminare un record non si può. Quindi basta aggiungere un campo di tipo int al database. Quando si va a visualizzare basta aggiungere una scelta: se il nuovo campo è a 1 si fanno i cout. Se è  0 non si fa niente.

Per modificare un record bisogna fare una ricerca, dentro l'if basta mettere il comando fseek.

grazie!!

PM Quote