Newsgroup: it.comp.lang.visual-basic
Titolo: Gestione file INI o CFG per configurazoini

Ragazzi una domanda , qual'e' il metodo migliore per gestire dei file di
configurazioni testuali ?
mi spiego meglio: io utilizzo nei miei semplici programmi dei file esterni
di tipo testo ( che siano INI CFG o TXT )
li leggo con open e poi line input , mi chiedevo se il Tipo INI avesse delle
funzioni ottimizzate e come usarle
es:
Pippo.ini
[Progetto]
bd= C:\pippo.mdb
Form= 1
[Label1]
cap= Pippone
top= 0
...
adesso utilizzo questo parser :
-nella prima form che carico faccio leggere l'ini
- leggo la linea , individuo le "[" "]" e capisco che sezione o oggetto devo
inizializzare ,
- leggo le stringhe prima del "=" e capisco quale proprieta' modificare e
gli passo il valore ( stringa o numerico) dopo l'uguale
- continuo fino al prossimo "[" che incontro e poi cambio oggetto o
proprieta' ..
mi accorgo che a volte devo modificare molti punti in un mio nuovo progetto
e devo ristravolgere il parser , ora mi chiedo , esiste un modo + standard
per gestire dei file di configurazioni ?
qualche api che legga automaticamente gli ini oppure sapere i metodi che
adottate voi !
(xml lo escludo perche' non so usarlo , ci terrei a rimanere in file di
testo di pochi byte perche li amministro anche in remoto)

 funzioni ottimizzate e come usarle
[SNIP]
Principalmente GetPrivateProfileString e WritePrivateProfileString, poi mi
sembra anche GetPrivateProfileSection e simili...
Ciao
--
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 funzioni ottimizzate e come usarle
oltre a quanto dice luca, mi sembra ci sia una classe per gli ini sul
s.c.

 adottate voi !
Yep ... come sicuramente troverai in google e sul sito comune
'Gestisce le funzioni di lettura e scrittura di un file .INI
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String)
As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As
String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Function g_WriteINI(Section, KeyName, sValue As String, Optional
INIFileName As String = "") As Boolean
    Dim FNm As String
    If INIFileName = "" Then
        FNm = g_INIFileName
     Else
        FNm = INIFileName
    End If
    If WritePrivateProfileString(Section, KeyName, sValue, FNm) = 0 Then
        g_WriteINI = False
     Else
        g_WriteINI = True
    End If
End Function
Public Function g_ReadINI(Section, KeyName, Optional INIFileName As String =
"") As String
    Dim sRet As String, St As String, FNm As String
    If INIFileName = "" Then
        FNm = g_INIFileName
     Else
        FNm = INIFileName
    End If
    sRet = String(255, Chr(0))
    g_ReadINI = Left(sRet, GetPrivateProfileString(Section, KeyName, "",
sRet, Len(sRet), FNm))
End Function
Saluti

"Gigio2k [work]" <n...@mail.please> ha scritto
ps
dll
http://sevillaonline.com/ActiveX/ARINIManLib.htm

 adottate voi !
Io uso il registro di sistema:
veloce, rapido, efficente.
Vedi funzioni savesetting e getsetting
Ciao

 Yep ... come sicuramente troverai in google e sul sito comune
ti ringrazio infinitamente , google stasera mi andava OT con dll ecc.. sul
sito comune emm... MEA CULPA ! ^_^
Grazie!