Oppure

Loading
07/05/11 13:20
Aleb
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!
void canc(void)
{
int a,b;
FILE * f;
f=fopen("c:\esc\Archivi\1.dat","r+b");
cli rec_cli;
char cogn[30];
cout<<"Inserisci il cognome, e quindi il record che vuoi cancellare\n";
cin>>cogn;
do
	{
	b=fread(&rec_cli,70,1,f);
	a=strcmpi(rec_cli.cogn,cogn);
	if (a==0)
		{

		break;
		}

	 }
while (b!=0);
if (a!=0) cout<<"\nCognome non trovato!!\n";
fclose(f);
}



grazie!!
aaa
07/05/11 13:34
Poggi Marco
Ciao!

Che problemi hai sulla gestione dei file?

Qui ci sono alcuni esempi: cplusplus.com/reference/iostream/fstream/
aaa
09/05/11 7:48
Aleb
non so cosa ci devo mettere dentro l'if per cancellare, modificare un record!
aaa
10/05/11 19:41
Poggi Marco
Per modificare un file in un dato punto, vedi questo esempio: cplusplus.com/reference/iostream/ostream/seekp/

Purtroppo, non è possibile cancellare direttamente un record in un file.
aaa
13/05/11 22:14
Aleb
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!!
aaa