Newsgroup: it.comp.programmare
Titolo: file INI

Ciao a tutti, volevo porre una domanda forse stupida:
per come la so io i file INI sono costituiti da sezioni, racchiuse
tra parentesi quadre, e da chiavi seguite dall'uguale e dal loro
valore.
L'INI non può gestire un livello superiore di sezione, che possa
contenere al suo interno ulteriori sezioni con le relative chiavi
ad esempio
[gruppo1]
     [sezione1]
         chiave1=a
         chiave2=b
     [sezione2]
         chiave1=a
         chiave2=b
[gruppo2]
     [sezione1]
         chiave1=a
         chiave2=b
     [sezione2]
         chiave1=a
         chiave2=b
Grazie.
Pusky

 ad esempio
Puoi farlo con un po' di elaborazione:
[Sezioni]
sezione1=nomesezione1
sezione2=nomesezione2
sezione3=nomesezione3
...
[nomesezione1]
sottosezione1=nomesottosezione
chiave1=...
...
[nomesottosezione]
chiave1=...
sottosezione1=...
[nomesezione2]
sottosezione1=...
Ovviamente, il leggere e ricostruire l'albero e' un po'
un lavoraccio... ma se ti servono strutture ad albero ti consiglio
di rivolgerti a qualche cosa di meglio (XML o un bel database).
Davide


Grazie per la risposta.
So che con XML o con un db non avrei problemi di questo tipo
ma il fatto è che il file INI mi serviva come archivio per un
programmino composto da pochi file e da una sola dll (il run time
di vb5), quindi potevo far funzionare il programma anche senza una
vera e propria installazione. Se però uso file di dati seri, sono
costretto ad usare anche le loro dll.
Dovrò studiarmi un'alternativa.
Ancora grazie,
Pusky


Ciao
Se mi dai un'idea piů precisa di cosa vuoi fare si puň studiare un approccio
con un file di testo formattato come un DB (es. campi divisi da carattere
conosciuto)
JKLJKL :-)

 conosciuto)
Voglio realizzare un programma che funzioni direttamente da CD, senza
installare
alcun file sul computer. Sembra un'idea stupida visto che ci sono programmi
che
non fanno niente di speciale ma installano quintali di DLL e cazzate varie,
ma
appunto per questo spesso la gente, specie quelli che hanno poca
dimestichezza
con l'uso del computer e in caso di crash di sistema devono rivolgersi a
specialisti a pagamento, preferiscono programmi che installato poco o niente
su
disco fisso.
Il mio programma (scusa se non ti dico cosa fa di preciso ma per motivi di
spionaggio ;-) non posso), dovrebbe accedere ad un archivio dalla struttura
non troppo complessa. Se i file INI avessero potuto gestirmi 3 livelli al
posto
di 2 il mio problema era risolto, avrei usato le sue funzioni di lettura e
scrittura
senza dovemi scrivere una routine da zero e dovermi scorrere ogni volta il
file. Comunque penso che utilizzerň da prima un db di access, poi esporterň
il tutto in un file testo con i dati separati in qualke modo (se non ricordo
male
access dovrebbe fare ste cose), oppure tranite vb lo leggo da access e lo
scrivo su file random
Grazie della risposta
Pusky


 Se usi Vb6 ti consiglio il File System Object che ti permette di trattare
il file di testo quasi come un db, es. puoi puntare direttamente ad una riga
senza dover sorrere il file oppure farti restituire il nr della colonna o
della riga che stai puntando.
Forse cosě facendo l'approccio č meno macchinoso.
Se posso, ti consiglierei di metterti su carta una struttura di tipo testata
/ riga
Per testata intendo dati comuni a piů righe con relativa chiave di accesso
Per riga dati di dettaglio
es.
TESTATA
    AZIENDA (key)    RAG.SOCIALE    DIPENDENTI
        Pippo                    AAABBB                100
        Pluto                      CCC                        500
RIGA
    AZIENDA (Key)    NOME        COGNOME
        Pippo                    XXX            YYY
        Pippo                    KKK            LLL
        Pippo                    III                  PPP
        Pluto                      111                222
        Pluto                      444                555
ecc... ecc....
Ovviamente puoi strutturare il tutto a piů livelli cosě da avere un dato
della struttura RIGA che diventa key in un'altra struttura riga ( nell'es.
sopra i nr.di telefono)
Buon lavoro e fammi sapere.
JKLJKL :-)


O dire il vero uso vb5 e non ho mai usato File System Object.
Comunque ho avuto una dritta da un amico.
Faccio qualke prova e ti faccio sapere.
Ancora grazie,
Pusky

 restituire il nr della colonna o della riga che stai puntando.
Gią Pusky vuole fare "un programma che funzioni direttamente da CD",
scritto in VB magari accedendo a un DB Access, ci mancava solo il FSO
come componente aggiuntivo...   <eg>
--
Faber


Scusa ma sono ancora mezzo addormentato e non capisco se con la tua risposta
tu mi stia prendendo in giro.
Di File System Object non ne so niente, perņ non vedo il motivo percui un
programma
scritto in vb (5) non possa girare da cd. Per l'accesso al file di dati
avevo gią escluso
un file di database vero e proprio (Access), pensavo quindi in un file di
testo o simile.
Forse ho frainteso la tua risposta. Bohhhhhh
Saluti,
Pusky