Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-06-2006, 14:00   #1
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
i file .ini

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
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 14:10   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
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
I 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.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 14:42   #3
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
esistono delle funzioni ke operano sui file di testo?? non le conosco
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 15:15   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
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.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 15:29   #5
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
Quote:
Originariamente inviato da AngeL)
esistono delle funzioni ke operano sui file di testo?? non le conosco

porca miseria se esistono
ti ha già risposto Andbin.
__________________
sign editata dallo staff
BountyKiller è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 13:47   #6
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
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 ).
quale funzione deve essere usata?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 14:36   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
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 ).
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ì:
Codice:
#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):
Codice:
int numero;

if (leggi_numero ("prova.txt", &numero))
{
    /* Usa numero */
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 15:42   #8
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
non ci ho capito tanto perchè quando ho letto il tutorial sul c++ pensavo ad altro ... vado prima a rileggerlo e poi decifro il tuo messaggio
AngeL) è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v