PDA

View Full Version : i file .ini


AngeL)
07-06-2006, 14:00
ciao a tutti.
oggi pomeriggio ho visto che alcuni programmi scrivono dei file .ini nelle loro directory e che questi file contengono dei parametri relativi al programma.
come si fa ad insegnare ad un programma fatto in c++ a scrivere un file .ini?
grazie in anticipo :D

andbin
07-06-2006, 14:10
ciao a tutti.
oggi pomeriggio ho visto che alcuni programmi scrivono dei file .ini nelle loro directory e che questi file contengono dei parametri relativi al programma.
come si fa ad insegnare ad un programma fatto in c++ a scrivere un file .ini?
grazie in anticipo :DI file .ini sono dei normali file di testo. Hai almeno 3 possibilità per gestirli da programma:
A) Utilizzare le API Win32 GetPrivateProfileXXX e WritePrivateProfileXXX. Queste funzioni però sono state da tempo "deprecate" in favore del registry di Windows (pur essendo comunque ancora disponibili!).
B) Utilizzare librerie esterne che gestiscono i file .ini (personalmente non ne conosco ...).
C) Scrivere tu un piccolo insieme di funzioni che opera sui file .ini.

AngeL)
07-06-2006, 14:42
esistono delle funzioni ke operano sui file di testo?? non le conosco :(

andbin
07-06-2006, 15:15
esistono delle funzioni ke operano sui file di testo?? non le conosco :(In "C" ci sono le funzioni fopen, fgets, fputs, ecc....
In "C++" ci sono le classi ifstream, ofstream e fstream.

BountyKiller
07-06-2006, 15:29
esistono delle funzioni ke operano sui file di testo?? non le conosco :(


porca miseria se esistono :D :D
ti ha già risposto Andbin.

AngeL)
12-06-2006, 13:47
ed esistono anche funzioni per prendere variabili da file di testo?
Esempio:
durante la prima esecuzione di un programma viene chiesto all utente un numero, e l'utente immette 10, questo numero viene salvato sul file di testo.
durante la successiva esecuzione del programma il numero immesso dall'utente deve essere scritto sulla finestra (del programma :D ).
quale funzione deve essere usata?

andbin
12-06-2006, 14:36
ed esistono anche funzioni per prendere variabili da file di testo?
Esempio:
durante la prima esecuzione di un programma viene chiesto all utente un numero, e l'utente immette 10, questo numero viene salvato sul file di testo.
durante la successiva esecuzione del programma il numero immesso dall'utente deve essere scritto sulla finestra (del programma :D ).
quale funzione deve essere usata?Non esiste una funzione apposita ... nel senso che sei tu a dover gestire la cosa usando più funzioni tra cui quelle per i file. Quindi:
1) Si apre il file in lettura.
2) Se è sufficiente 1 sola riga, la si legge mettendola in un buffer.
3) Si interpreta la stringa. Se bisogna ottenere un numero, si converte la stringa in un numero.
4) Si chiude il file.

Diciamo che ci sono molti modi per fare questa procedura. Ad esempio i punti 2/3 si possono unire usando la funzione fscanf (che però a me non piace!).

Se vuoi leggere un numero presente sulla prima riga di un file di testo, in "C" si può fare così:
#include <stdio.h>
#include <stdlib.h>

int leggi_numero (char *nomefile, int *numero)
{
FILE *f;
char buffer[20];

if ((f = fopen (nomefile, "r")) == NULL)
return 0;

if (fgets (buffer, sizeof (buffer), f) == NULL)
{
fclose (f);
return 0;
}

*numero = atoi (buffer);

fclose (f);

return 1;
}Questa funzione è "minimale". Ad essere pignoli si dovrebbero controllare i puntatori in ingresso e che i dati nel buffer contengano realmente un numero.

e poi dal main (o altra parte):
int numero;

if (leggi_numero ("prova.txt", &numero))
{
/* Usa numero */
}

AngeL)
12-06-2006, 15:42
non ci ho capito tanto perchè quando ho letto il tutorial sul c++ pensavo ad altro :D ... vado prima a rileggerlo e poi decifro il tuo messaggio :)