Newsgroup: it.comp.lang.visual-basic
Titolo: Immettere e leggere dati in file .ini

Come posso fare a immettere in un file .ini del testo contenuto in piů
textbox?
E poi premendo un tasto (esempio visualizza) a far andare il testo che avevo
precedentemente salvato nel file .ini nelle textbox ???
Ad esempio un file ini č cosě strutturato:
[Info]
Nome=Mario
Cognome=Rossi
Professione=Dottore
[Stats]
LastInfoMsg=06.06.2003
Load=3048
Hist=59
Kill=0
ByMid=0
---------
Come faccio a salvare i dati sotto [Info] e successivamente nome, cognome,
ecc... e come faccio poi a caricarli nel programma???
Sicuro di una vs risposta vi ringrazio.
--
[ Imperator ]
Comitato Gestione Free.It.* - CGFI
Web: 
www.infofreeit.tk
 - E-Mail: 
infof...@email.it
 - AzzurraNet:
#infofreeit

 ecc... e come faccio poi a caricarli nel programma???
Vedi FreeFile, Open (For Output e For Input), Print #canale, riga e Line
Input #canale, riga
E non fare cross-post che siamo gelosi del nostro luogo. ;-)

 textbox?
Se cerchi nei vecchi post puoi trovare anche del codice che ti spiega come
fare!
MIk

 E non fare cross-post che siamo gelosi del nostro luogo. ;-)
Veramente ??? Scusate :o)
--
[ Imperator ]
Comitato Gestione Free.It.* - CGFI
Web: 
www.infofreeit.tk
 - E-Mail: 
infof...@email.it
 - IRC: #infofreeit
Gruppo ANTISPAM: 
http://it.groups.yahoo.com/group/contro_spam/

 ...
Personalmente la gestione dei file ini la faccio con un unico ocx
chiamato Xini, č free
puoi leggere/scrivere sezioni, chiavi e valori
cią
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 cià
Ciao
Alessandro

> Io ,invece, ho una classe nel mio SS
beh, los viluppo l'ho riabbracciato da poco, opero in un ced e sviluppo
verticalmente applicazioni tipicamente legate al mondo gestionale.
quindi macchine conformi a determinati standard/caratteristiche (es.
sono tutte compaq, so nt/2k, niente 98/me/xp)
xini mi ha consentito di scavlacare subito l'ostacolo dei files INI e
devo dire che funzia piuttosto bene, ma anche l'idea di una classe (anzi
a dire il vero l'idea di una dll) mi attizza.
l'hai trovata in giro, è scaricabile da qualche parte, è roba tua ?????
:-)
Mirko (Mirx) Parisi


l'hai trovata in giro, è scaricabile da qualche parte, è roba tua ?????
Trovi codice sorgente per gestire i file ini sul sito comune del
newsgroup:
http://www.it-lang-vb.net/
-- 
ciao, hal

 ByMid=0
Hai molti modi.
Pero' tutti si riconducono a questo:
1) Carica il file in ram
2) Modifica il contenuto della ram
3) Sovrascrivi il vecchio file
Con VB puoi utilizzare due oggetti per i i punti 1 e 3.
Puoi utilizzare il File System Object (oggetto della classe scripting
runtime), oppure il metodo "load" dell'oggetto MSXML (il parser XML).
Nel primo caso quello che otterrai sara' un oggetto di tipo TEXT-STREAM che
puoi convertire in stringa (metodo readAll) oppure in un array di stringhe
se lo leggi riga per riga (readline).
Nel secondo caso invece otterrai un DOMDocument (DOM sta per Document Object
Model) in formato XML e ti assicuro che e' una cosa comoda:
Il tuo file.ini diventerebbe una cosa tipo:
<INFO>
    <NOME>Mario</NOME>
    <COGNOME>Rossi</COGNOME>
    <PROFESSIONE>Dottore</PROFESSIONE>
</INFO>
<STATS>
    <LastInfoMsg>06.06.2003</LastInfoMsg>
    <Load>3048</Load>
...etc
</STATS>
e letto come un menu' ad albero.
Puoi nidificare le informazioni come ti pare, senza alcun limite.
Al punto 2, nel caso tu abbia un array di righe da modificare, dovrai
cercare riga per riga (o con qualche altro sistema che dovrai sviluppare) i
dati da modificare.
Se hai un oggetto DOMDocument, tutto quel che dovrai fare sara' dirgli "ue'
ciccio, voglio INFO.NOME" e lui rispondera' "Mario", non e' facile, ma una
volta capito il meccanismo non potrai piu' farne a meno.
Se sul PC dove girera' il programma manca MSXML (componente di IE4 e
versioni successive) non funzionera' nulla.
Per salvare i dati, il file system object ha i suoi metodi (che consentono
anche di sovrascrivere) e di solito basta modificare l'oggetto textstream e
alla chiusura viene salvato, mentre con MSXML basta invocare il metodo save
sull'oggetto DOMDocument che hai modificato.
Ciau
Andrea

'Che ne Pensate di questo?
'Funziona su 95,98,Me,NT,2000,Xp.
'Non è male
Private Declare Function GetPrivateProfileSection Lib "kernel32" _
    Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" _
   Alias "GetPrivateProfileStringA" (ByVal lpApplicationName _
   As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
    ByVal lpReturnedString As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileSection Lib "kernel32" _
    Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, _
    ByVal lpString As String, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" _
    Alias "WritePrivateProfileStringA" (ByVal lpApplicationName _
    As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
    ByVal lpFileName As String) As Long
    Private gstrKeyValue As String * 256
Public m_fileINI As String 'Variabile per la memorizzazione del file ini
Public Function Read_INI(ByVal NomeFileINI As String, ByVal sezione As
String, ByVal chiave As String, ByVal SDefault As String) As String
Dim ret As Long
Dim RetStr As String * 256
Dim VrCur As Integer
    ret = GetPrivateProfileString(sezione, chiave, SDefault, RetStr,
Len(RetStr), NomeFileINI)
        VrCur = InStr(1, RetStr, Chr(0))
    Read_INI = Left(RetStr, VrCur - 1)
End Function
Public Function Write_Ini(ByVal NomeFileINI As String, ByVal sezione As
String, ByVal chiave As String, valore As String) As Long
    Dim ret As Long
    ret = WritePrivateProfileString(sezione, chiave, valore, NomeFileINI)
End Function

Io ti consiglio di fare in questo modo
due classi:
una classe file init ed una voci
la classe VOCI è un isieme di stringhe del tipo voce=valore ed inizia per un
titolo del tipo [pippo]
quindi
[voci]
voce1=valore1
...
La classe File_Init altro non è che una collezione di questi oggetti
prevedi un metodo per caricare e scariocare il file dopo che lo hai
modificato.
Non è difficile ed una cosa fatta così è estremamante flessibile (io ho
fatto le due classi e sono riuscito a produrre qualcosa di molto stabile.)