View Full Version : Linguaggio C: Numero Progressivo
kalindran
19-09-2013, 12:18
In un progetto in C ho creato una procedura per l'inserimento e la scrittura su file di uno (o più record) contenenti campi stringa come NOME, COGNOME, TELEFONO...etc e soprattutto ho un campo ID che deve contenere un intero che farà da numero progressivo. Come faccio a ogni inserimento a tener traccia dell'ID dell'ultimo record inserito così da poterlo maggiorare di 1?
*Il campo ID non deve essere inserito dall'utente, ma calcolato dal programma a partire dal primo inserimento
Dovresti mostrare anche del codice perchè così è difficile capire..
Cmq da quel che riesco a capire, non ti basta incrementare l'intero alla fine di ogni inserimento?
variabile++
EDIT: Se hai creato una funzione per farlo, probabilmente se usi un intero interno alla funzione ogni volta ti perde traccia ( giustamente ).
Per evitare ciò, devi passare questo intero che usi per l'ID per riferimento alla funzione:
void aggiunta(int *ID){
...
ID++;
...
}
int main(){
...
int ID;
...
aggiunta(&ID);
...
return 0;
}
kalindran
19-09-2013, 14:01
Per evitare ciò, devi passare questo intero che usi per l'ID per riferimento alla funzione:
void aggiunta(int *ID){
...
ID++;
...
}
int main(){
...
int ID;
...
aggiunta(&ID);
...
return 0;
}
Ok, ma se provo così, quando chiudo il programma e lo riapro, perdo nuovamente il valore della variabile ID. Come faccio a recuperare ogni volta quel numero?
Questo più o meno il codice (manca solo l'inserimento di questo id progressivo):
typedef struct{
int id;
char nome[20];
char cognome[20];
} scheda;
FILE *filedata;
scheda persona;
void inserimentodati(void)
{
printf("Nome---> ");
scanf("%s", persona.nome);
printf("Cognome---> ");
scanf("%s", persona.cognome);
filedata=fopen("data.txt","a+");
fwrite(&persona,sizeof(scheda),1,filedata);
fclose(filedata)
}
lorenzo001
19-09-2013, 14:18
Vedi
http://forum.html.it/forum/showthread.php?s=&threadid=1552798
http://www.iprogrammatori.it/forum-programmazione/cplusplus/linguaggio-numero-progressivo-t18009.html
kalindran
19-09-2013, 14:29
Vedi
http://forum.html.it/forum/showthread.php?s=&threadid=1552798
http://www.iprogrammatori.it/forum-programmazione/cplusplus/linguaggio-numero-progressivo-t18009.html
Sono sempre io
lorenzo001
19-09-2013, 14:45
Lo so che sei sempre tu ... e per questo ti ho indicato di leggere le risposte che ti sono già state date per memorizzare l'ID
kalindran
19-09-2013, 14:51
Sto ancora facendo fatica a trovare la soluzione, sebbene quella di riservare il primo record per il contatore sia certamente la strada giusta. Continuo ad avere difficoltà su come trasformare il tutto nel codice
Sto ancora facendo fatica a trovare la soluzione, sebbene quella di riservare il primo record per il contatore sia certamente la strada giusta. Continuo ad avere difficoltà su come trasformare il tutto nel codice
Apertura/Chiusura file in C: http://it.wikibooks.org/wiki/C/Lettura_e_scrittura_su_file
Lettura/Scrittura file in C: http://www.html.it/pag/15423/le-funzioni-fprintf-e-fscanf/
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.