howto/come_gestire_dati_fissi.md
... ...
@@ -6,8 +6,78 @@ All'interno dello stesso file .h vado anche a definire le **funzioni** e le **va
6 6
7 7
Esempio:
8 8
9
-![led](https://images.app.goo.gl/HwWZmtwG23YFHkiVA)
9
+ // dichiaro le funzioni per eseguire le operazioni con i dati fissi
10
+ void carica_fissi(void);
11
+ char salva_fissi(void);
12
+ void reset_fissi(void);
10 13
11
-Di seguito riportiamo anche un esempio reale commentato
14
+
15
+ char pathProg[32] = "C:\\prog.fissi"; // viene dichiarato un array
16
+ // relativo al file
17
+ // da cui prendere i dati fissi
18
+
19
+
20
+ // definisco un tipo di struttura chiamata dati_fissi
21
+ // e dichiaro i nomi dei dati
22
+ typedef struct dati_fissi
23
+ {
24
+ unsigned char dato_fisso1;
25
+ unsigned char dato_fisso2;
26
+ unsigned char dato_fisso3;
27
+ long int dato_fisso4;
28
+ }
29
+
30
+ dati_fissi d; // viene dichiarata una
31
+ // struttura dati d
32
+
33
+ FILE *f //viene dichiarato un file f
34
+ //che ci servirà nelle funzioni
35
+
36
+
37
+ // Questa funzione prende i valori dei dati fissi da un file
38
+ // e li carica in una struttura dati (d)
39
+ void carica_fissi(void)
40
+ {
41
+ f = fopen(pathProg, "r"); // apre in modalità lettura pathProg e lo mette in f
42
+
43
+ if (f == 0) // se f è 0 --> l'operazione non ha avuto successo
44
+ reset_fissi(); // resetta i valori dei dati fissi impostando quelli di default
45
+ // (questa funzione è spiegata più avanti)
46
+
47
+ fread(&d, sizeof(d), 1, f); // legge i valori dei dati fissi presenti nel
48
+ // file f e li carica nella struttura dati d
49
+
50
+ fclose(f); // chiude il file f
51
+ }
52
+
53
+ // Questa funzione prende i valori dei dati fissi caricati nella struttura dati d
54
+ // e li salva nel file f se l'apertura in modalità scrittura del file pathProg ha successo
55
+ char salva_fissi(void)
56
+ {
57
+ f = fopen(pathProg,"w"); // apre in modalità scrittura pathProg e lo mette in f
58
+
59
+ if (f == 0) // se f è 0 --> l'operazione non ha avuto successo
60
+ return 0; // la funzione ritorna 0
61
+
62
+ //se f non è 0
63
+ fwrite(&d, sizeof(d), 1, f); // i valori dei dati fissi contenuti in d li salva nel
64
+ // file f
65
+
66
+ fclose(f); // chiude il file f
67
+ return 1; // la funzione ritorna 1
68
+ }
69
+
70
+ // Questa funzione resetta i valori dei dati fissi impostandoli su suoi valori di default
71
+ void reset_fissi(void)
72
+ {
73
+ d.dato_fisso1 = 0;
74
+ d.dato_fisso2 = 3;
75
+ d.dato_fisso3 = 0;
76
+ d.dato_fisso4 = 4;
77
+
78
+ salva_fissiRic(); //salva i valori di default
79
+ }
80
+
81
+Di seguito riportiamo anche un esempio applicativo reale commentato
12 82
13 83
[Esempio reale](/howto/come_gestire_dati_fissi/esempio_reale)
... ...
\ No newline at end of file