140f798987851c3d2494580858e62a108b5fad5b
howto/come_gestire_dati_fissi.md
... | ... | @@ -1,4 +1,4 @@ |
1 | -Quando si ha una serie di **dati fissi** all'interno del programma, (per esempio un dato che identifica la modalità di un lavoro, o uno che indica il ritardo di accensione di un'uscita) il modo migliore per **gestirli, caricarli, salvarli ecc**. è quello di definire tipi di **strutture dati** (typedef struct), nelle quali vengono **caricati** i dati fissi a partire da un file, e di definire una serie di **funzioni** per varie operazioni relative ai dati (come ad esempio resettarli con i valori di default ecc.). |
|
1 | +Quando si ha una serie di **dati fissi** all'interno del programma, (per esempio un dato che identifica la modalità di un lavoro, o uno che indica il ritardo di accensione di un'uscita) il modo migliore per **gestirli, caricarli, salvarli ecc**. è quello di definire tipi di **strutture dati** (typedef struct), nelle quali vengono **definiti** i dati fissi, e di definire una serie di **funzioni** per varie operazioni relative ai dati (come ad esempio resettarli con i valori di default ecc.). |
|
2 | 2 | |
3 | 3 | La struttura dati viene dichiarata nel **common.h** (o comunque all'interno di un file .h incluso nel common). |
4 | 4 | |
... | ... | @@ -12,7 +12,8 @@ Esempio: |
12 | 12 | void reset_fissi(void); |
13 | 13 | |
14 | 14 | |
15 | - char pathProg[32] = "C:\\prog.fissi"; // viene dichiarato un array relativo al file da cui prendere i dati fissi |
|
15 | + char pathProg[32] = "C:\\prog.fissi"; // viene dichiarato il percorso relativo al file da cui prendere i dati fissi |
|
16 | + // il percorso è di una penna USB (C è la penna) |
|
16 | 17 | |
17 | 18 | |
18 | 19 | // definisco un tipo di struttura chiamata dati_fissi e dichiaro i nomi dei dati |
... | ... | @@ -32,7 +33,7 @@ Esempio: |
32 | 33 | // Questa funzione prende i valori dei dati fissi da un file e li carica in una struttura dati (d) |
33 | 34 | void carica_fissi(void) |
34 | 35 | { |
35 | - f = fopen(pathProg, "r"); // apre in modalità lettura pathProg e lo mette in f |
|
36 | + f = fopen(pathProg, "r"); // apre in modalità lettura il file del percorso pathProg |
|
36 | 37 | |
37 | 38 | if (f == 0) // se f è 0 --> l'operazione non ha avuto successo |
38 | 39 | reset_fissi(); // resetta i valori dei dati fissi impostando quelli di default |
... | ... | @@ -42,18 +43,18 @@ Esempio: |
42 | 43 | fclose(f); // chiude il file f |
43 | 44 | } |
44 | 45 | |
45 | - // Questa funzione prende i valori dei dati fissi caricati nella struttura dati d |
|
46 | - // e li salva nel file f se l'apertura in modalità scrittura del file pathProg ha successo |
|
46 | + // la seguente funzione prende i valori dei dati fissi caricati nella struttura dati d e li salva in un file |
|
47 | 47 | char salva_fissi(void) |
48 | 48 | { |
49 | - f = fopen(pathProg,"w"); // apre in modalità scrittura pathProg e lo mette in f |
|
49 | + f = fopen(pathProg,"w"); // apre in modalità scrittura il file del percorso pathProg |
|
50 | 50 | |
51 | 51 | if (f == 0) // se f è 0 --> l'operazione non ha avuto successo |
52 | 52 | return 0; // la funzione ritorna 0 |
53 | 53 | |
54 | 54 | //se f non è 0 |
55 | - fwrite(&d, sizeof(d), 1, f); // i valori dei dati fissi contenuti in d li salva nel file f |
|
56 | - |
|
55 | + fwrite(&d, sizeof(d), 1, f); // i valori dei dati fissi contenuti in d li salva in f |
|
56 | + // (modificando il file del percorso di pathProg) |
|
57 | + |
|
57 | 58 | fclose(f); // chiude il file f |
58 | 59 | return 1; // la funzione ritorna 1 |
59 | 60 | } |