Newsgroup: it.comp.appl.access
Titolo: Modificare file ini

Salve a tutti,
per un mio programma utilizzo un file.ini per memorizzare una serie di
informazioni utili, tipo l'attivazione o meno, la data dell'ultimo backup,
la versione ecc...
Da codice leggo questo file, all'apertura, ed effettuo i controlli del caso,
con le istruzioni Open #, Input#, e Line Input#.
Ho però la necessità di modificare alcune righe di questo file.ini, ad
esempio la riga relativa all'attivazione e quella dell'ultimo backup, però
l'unica istruzione che ho trovato (Write #) mi sovrascrive l'intero file e
non solo la riga che mi interessa, con la necessità quindi di ricreare
l'intero file da codice.
Non esiste un'istruzione che invece mi permetta di modificare solo la o le
righe interessate? Qualcosa di simile a Line Input #, che legge le singole
righe?
Allego un facsimile del file.ini:
Attivazione=0
Versione=8.1
Backup=15/08/2005
Licenze=5
Attualmente, per modificare la prima riga, devo riscrivere tutto il file,
con le seguenti istruzioni:
Print #1 "Attivazione=-1"
Print #1 "Versione=8.1"
Print #1 "Backup=15/08/2006
Print #1 "Licenze=5"
Tenendo conto che il file.ini è molto più lungo, è una seccatura doverlo
riscrivere tutto.
Grazie a tutti
Franco
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:217Z222Z110Z44Y...@usenet.libero.it...

Ciao Franco,
esistono nelle API di Windows alcune routine che sono "speciali " per la
gestione di files ini:
sono la GetPrivateProfileString, GetPrivateProfileInt,
WritePrivateProfileString e WritePrivateProfileInt
per una spiegazione vedi 
http://www.vbitalia.it/static/ini2.htm
  e anche
http://www.allapi.net/apilist/GetPrivateProfileString.shtml
-- 
Cinzia
---------------------------------------
|  
http://www.riolab.org
  |
---------------------------------------

Franco ha scritto:

Vedi se può esserti utile:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=9
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=54
@Alex


 (...) 
Declare Function GetPrivateProfileStringA Lib "kernel32" (ByVal
lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault
As String, ByVal lpReturnedString As String, ByVal nSize As Integer,
ByVal lpFileName As String) As Integer
Declare Function WritePrivateProfileStringA Lib "kernel32" (ByVal
lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As
Any, ByVal lplFileName As String) As Integer
' Legge informazioni in un file .ini
'-----------------------
' Parametri in ingresso:
'   pFile    : Nome del file ini comprensivo del path
'   pSection : Nome della sezione interessata dalla lettura
'   pEntry   : Nome identificativo della riga da leggere
' La funzione restituisce il valore associato alla riga indicata in
pEntry nella
' sezione specificata in pSection
' Se la sezione e/o la riga non esistono nel file ini, la funzione
restituisce
' la stringa ""
'-----------------------
Public Function LeggiIni(pFile As String, pSection As String, pEntry
As String) As String
On Error GoTo Annulla
Dim manca As String
Dim x As Integer
Dim stBuffer As String
 
  stBuffer = Space$(255)
  manca = ""
  x = GetPrivateProfileStringA(pSection, pEntry, manca, stBuffer, 255,
pFile)
  LeggiIni = Left$(stBuffer, x)
  Exit Function
Annulla:
  MsgBox Err.Description, vbCritical + vbOKOnly, "Errore"
End Function
' Scrive informazioni in un file .ini
'-----------------------
' Parametri in ingresso:
'   pFile    : Nome del file ini comprensivo del path
'   pSection : Nome della sezione interessata dalla modifica/aggiunta
'   pEntry   : Nome identificativo della riga da modificare/aggiungere
'   pValue   : Valore da associare a pEntry
' Se il file specificato in pFile non esiste viene creato
' Se la sezione indicata in pSection non esiste viene creata,
altrimenti il valore
' ad essa asssociato viene aggiornato con pValue
'-----------------------
Public Function ScriviIni(pFile As String, pSection As String, pEntry
As String, pValue As String)
  ScriviIni = WritePrivateProfileStringA(pSection, pEntry, pValue,
pFile)
End Function

Grazie a tutti per gli ottimi suggerimenti,
appena avrņ del tempo proverņ.
Saluti



Grazie tante, ho scoperto un mondo nuovo, l'utilizzo dei file.ini.
Vorrei chiederti un'ultima cosa: c'è la possibilità, oltre che di crearle e
modificarle, anche di eliminare alcune Chiavi o un'intera Sezione di un
file.ini?
Saluti


 Franco
Hai guardato il DEMO già fatto che ti ho suggerito..?
@Alex


Hai ragione, grazie, mi ero fermato alla prima FAQ,
è tutto molto più chiaro,
grazie ancora
