Salve a tutti. Da buon principiante ho fatto il mio primo piccolo e semplice programmino:
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*/
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.
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.