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
}