Salve a tutti. Da buon principiante ho fatto il mio primo piccolo e semplice programmino:
Ora, il suggerimento che mi servirebbe, è di crearmi un'altra funzioncina che mi permetta di fare una ricerca nel file, ad esempio di cercare per cognome o nome.codice:#include <stdio.h> #include <stdlib.h> #include <time.h> #define ELENCO 100 /* mi serve per vedere l'elenco con la scelta 2*/ /* struttura di esempio */ struct dati { int codice; char cognome[40]; char nome[40]; char cfs[17]; /*per il codice fiscale*/ char ddn[11]; /*per la data di nascita*/ } anagraf; int main(int argc, char *argv[]) { char opfilename[] = "/home/raoul/esempio.txt"; /*per aprire il file*/ FILE *opfp; struct tm *newtime; /*per scrivermi il tempo di memoriz. del record/* time_t aclock; int selection; /*variabile per il menù*/ for( ; ; ) /*mi apro un ciclo infinito*/ { printf("\n1 - aggiunge un record"); printf("\n2 - visualizza elenco"); printf("\n3 - esci dal programma"); scanf("%d", &selection); if (selection < 1 || selection > 3) /*limito la scelta al menu*/ { printf("\nInserire solo da 1 a 3!!"); } else if(selection == 3) { printf("\nArrivederci!!\n"); break; } else if(selection == 1) { printf("\nInserire codice per record: "); scanf("%d", &anagraf.codice); printf("\nInserire Cognome: "); scanf("%s", anagraf.cognome); printf("\nInserire Nome: "); scanf("%s", anagraf.nome); printf("\nInserire Codice Fiscale: "); scanf("%s", anagraf.cfs); printf("\nInserire data di nascita(gg-mm-aaa): "); scanf("%s", anagraf.ddn); /*mi apro il file per scriverci i dati*/ opfp = fopen(opfilename, "a+"); /*metto anche il "tempo" di registrazione del record*/ time (&aclock); newtime = localtime(&aclock); /*scrivo sul file che ho aperto*/ fprintf(opfp, "%d\t %s\t %s\t\t %s\t %s\t\n", anagraf.codice, anagraf.cognome, anagraf.nome, anagraf.cfs, anagraf.ddn, asctime(newtime)); /*dopo aver scritto chiudo il file*/ fclose (opfp); }/*termine dell'if per la scelta 1*/ else if( selection == 2 ) { char ind[ELENCO]; opfp = fopen(rfilename, "r"); /*apro il file per leggere i record*/ while( !feof(opfp) )/*fin quando no arrivo alla fine del file*/ { fgets(ind, ELENCO, opfp); printf("%s", ind); } fclose(opfp); } }/*chiusura del ciclo for*/ }/*fine main*/
E, l'ultima cosa, di fare un controllo che mi permetta, al momento dell'inserimento, di indicarmi se un nominativo già esiste oppure no: es.: inserisco "RaouL", se esiste già mi dovrebbe dire na cosa tipo: "Record già esistente".
Thx. RaouL.

Rispondi quotando


