Newsgroup: it.comp.lang.visual-basic
Titolo: Gestione file INI con VB5

Salve a tutti.
Vorrei sapere se esiste un controllo activex o qualche libreria che
permetta il controllo totale di file INI.
Mi spiego. Io vorrei poter leggere un file INI, sapere quante sezioni ci
sono e quanti elementi per  ogni sezione. Poi vorrei avere la
possibilita' di leggere i fari campi, crearne di nuovi e quindi salvare
il fine INI nella sua globalita'.
Esiste qualcosa che mi permetta di fare questo senza ricorrere alle API
di Windows ?
Grazie per l'aiuto.
-=[ Ninjam ]=-


Esiste Esiste,
Hai chiesto alle persone giuste  :-))
Vai sul Sito Comune (vedi qui in fondo) troverai un'OCX per fare quello che desideri, e su "Piccole Perle" le relative API che
vengono usate per fare quello che fa l'OCX. a te la scelta.
Ovviamente e' TUTTO FREE!
-- 
Hi, Ciao
Ettore                 By -MES-
http://freeweb.aspide.it/freeweb/ilmes
 
(con OCX per stampare i Recordset)
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

Grazie molte per l'aiuto
-=[ Ninjam ]=-


Grazie ancora per l'aiuto. 
Ho terminato di leggere l'help. Devo dire che mi aspettavo un po' di
piu'. Certo, il tutto e' gratis, pero' non e' altro che una estensione
delle API.
Quello che a me serve veramente e' la possibilita' di avere l'elenco
delle sezioni e per ogni sezione l'elencho delle chiavi.
Sia con la Api che con l'OCX se non sai quale sezione e quale chiave
non  ci fai niente.
La mia idea e' un analizzatore di file INI. Un OCX che ti permetta di
lavorare con INI sconosciuti e quindi ti informi del contenuto, di tutte
le sezioni e chiavi in modo che poi io possa decitere cosa fare.
Comunque ringrazio tutti. Se trovero' qualcosa vi faro sapere.
Eventualmente mi mettero a scriverlo. Non vorrei solo fare il lavoro che
ha gia' fatto un'altro.
Saluti a tutti
-=[ Ninjam ]=-
===================================================================



Per fare quello che ti serve, credo che l'unica soluzione sia di aprire il
file come file di testo e leggerlo in memoria. Dopodiche ti devi fare delle
funzioni che riconoscano l'inizio di sezione (come [qualcosa]) e farne un
elenco di tutte le voci.
Tutto questo perche' le API di Windows (come saprai) ti permettono di
leggere/scrivere sezioni e/o voci, ma (che mi ricordi), non ti permettono di
avere un "elenco" del contenuto del file INI.
P.S. se riesci a fare quello che devi fare, potresti poi mandarlo sul Sito
Comune, cosi' sara' utile per altri come te.
ciao
--
Roal Zanazzi
z...@iol.it

 ha gia' fatto un'altro.
Caspita, nelle API del "Piccole Perle" non l'ho messo?
Ora controllo........ ...... ........
Ho controllato, e c'e'!
Lo clippato dalle pagine del sito e lo riporto qui Paro Paro:
'
' *** Dichiarazione per ricavare l'elenco delle sezioni
'
Declare Function GetListPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As
Long, ByVal lpKeyName As Long, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal
lpFileName As String) As Long 
Esempio d'uso:
Ricava l'intero elenco di tutte le sezioni presenti nel file "c:\t\prova.ini". I nomi delle sezioni sono separate da un
chr$(0). In Esito torna la lunghezza della stringa di ritorno espressa in caratteri.
    StrAppo$ = Space$(512)
    Esito = GetListPrivateProfileSection(0, 0, "", StrAppo$, Len(StrAppo$), "c:\t\prova.ini")
    Elenco$ = Left$(StrAppo$,Esito)
'
' *** Dichiarazione per ricavare l'elenco delle voci presenti in una sezione
'
Declare Function GetPrivateProfileItems Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String,
ByVal lpKeyName As Long, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As
String) As Long
Esempio d'uso:
Ricava l'intero elenco di tutte le voci presenti nella sezione "Generale" del file "c:\t\prova.ini". I nomi delle voci sono
separate da un chr$(0). In Esito torna la lunghezza della stringa di ritorno espressa in caratteri.
    StrAppo$ = Space$(512)
    Esito = GetPrivateProfileItems("Generale", 0, "", StrAppo$, Len(StrAppo$), "c:\t\prova.ini")
    Elenco$ = Left$(StrAppo$,Esito)


Hops!!
 Mi scuso per la disattenzione.
Comunque  ho continuato la mia ricerca tramite 
www.activex.com
 dando
come chiave la parola INI ed e' saltato fuori un INI Manager 1.0 OCX
che fa proprio al caso mio. 
Ho provato a spedirlo sul sito comune ma credo di non esserci riuscito
a causa di problemi con la mia mailbox del mio provider.
Se credete che possa servire l'url e' il seguente:
http://www.geocities.com/SiliconValley/Peaks/4140/INIManager10.zip
Saluti
-=[ Ninjam ]=-