Newsgroup: it.comp.lang.visual-basic
Titolo: Help for ini

Potete farmi un rapido riassunto su come si prelevano infromazioni da un
file.ini?
Vi prego, non ditemi di farmi un giro sul sito comune perchè da qui non si
può navigare in Internet ma solo visitare i Newsgroup.
Sono graditi MOLTISSIMO codici d'esempio!!!
Grazie mille.
By  FluidoCattivo


Beh, dovresti usare le funzioni API GetPrivateProfileString e
WritePrivateProfileString, ma non e' una cosa proprio breve. Beh,
penso che un bell'accesso al web ti potrebbe proprio servire: esistono
molte classi che incapsulano il problema e rendono le cose MOLTO
facili....
Comunque ecco una routine d'esempio, giusto per farsi un'idea:
Property Let Value(sValue As String)
Dim iPos As Integer
    iPos = InStr(sValue, Chr$(0))
    Do While iPos <> 0
        sValue = Left$(sValue, (iPos - 1)) & Mid$(sValue, (iPos + 1))
        iPos = InStr(sValue, Chr$(0))
    Loop
    m_lLastReturnCode = WritePrivateProfileString(m_sSection, m_sKey,
sValue, m_sPath)
End Property
Vabbe', non dovrei (ora mi linciano, qui non dovrei postare codici)
ma....
Property Get Value() As String
Dim sBuf As String
Dim iSize As String
Dim iRetCode As Integer
    sBuf = Space$(255)
    iSize = Len(sBuf)
    iRetCode = GetPrivateProfileString(m_sSection, m_sKey, m_sDefault,
sBuf, iSize, m_sPath)
    If (iSize > 0) Then
        Value = Left$(sBuf, iRetCode)
    Else
        Value = ""
    End If
End Property

In un modulo BAS:
Option Explicit
Declare Function WritePrivateProfileString Lib "kernel32" Alias
"WritePrivateProfileStringA" (ByVal lpApplicationname As String, ByVal
lpKeyName As Any, ByVal lsString As Any, ByVal lplFilename As String) As
Long
Declare Function GetPrivateProfileInt Lib "kernel32" Alias
"GetPriviteProfileIntA" (ByVal lpApplicationname As String, ByVal lpKeyName
As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
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
Global Const File = "C:\Windows\myini.ini"
Global appname
Global Keyname
Global Value
Public Function Store(File As String, Heading As String, Section As String,
Value As String)
    Dim lpAppName As String, lpFileName As String, lpKeyName As String,
lpString As String
    Dim U As Long
    lpAppName = Heading
    lpKeyName = Section
    lpString = Value
    lpFileName = File
    U = WritePrivateProfileString(lpAppName, lpKeyName, lpString,
lpFileName)
    If U = 0 Then
        Beep
    Else
        Store = "Success"
    End If
End Function
Public Function GetValue(File As String, Heading As String, Section As
String)
    Dim X As Long
    Dim Temp As String * 200
    Dim lpAppName, lpKeyName, lpDefault, lpFileName As String
    lpAppName = Heading
    lpKeyName = Section
    lpDefault = "Errore"
    lpFileName = File
    X = GetPrivateProfileString(lpAppName, lpKeyName, lpDefault, Temp,
Len(Temp), lpFileName)
    If X = 0 Then
        Beep
    Else
        GetValue = Trim(Temp)
    End If
End Function
Per reperire info dal file usa GetValue
Per memorizzare usa Store !!!
Ciaps
Stracca

 Vabbe', non dovrei (ora mi linciano, qui non dovrei postare codici)
??? E perchč non dovresti ? Forse ti confondi con gli allegati, che in ogni
caso, se sono piů grandi di un tot, vengono tolti automaticamente,
ma se non posti del codice quě, dove lo fai ?
Bye, G.



Beh, non volevo postare TROPPO codice.... ma effettivamente 49 righe
non sono poi tante, anzi quasi quasi mando tutta la classe......
vabbe' lasciamo perdere, se a qualcuno interessa gliela posto =)
(e'una classe di Steve McMahon, mister VBAccelerator, lievemente
rimaneggiata dal sottoscritto)

Sono graditi MOLTISSIMO codici d'esempio!!!
Public Declare Function GetPrivateProfileStringA Lib "kernel32" _
(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
Sub xyz
   Dim lngRisultato As Long
   Dim strBuffer As String * 255
   Dim objWSH As Object
   Dim strPath As String
 
   Set objWSH = CreateObject("WScript.Shell")
   strPath = objWSH.RegRead("HKLM\Software\etc") 'voce del registry
   lngRisultato = GetPrivateProfileStringA("Voce", "Chiave",
"Stringa", strBuffer, Len(strBuffer) - 1, "NomeFile.INI") '
 
   If (lngRisultato > 0) Then Risultato = Left$(strBuffer,
InStr(strBuffer, vbNullChar) - 1)
Ciao,
	arKannone


Perche' invece non la mandi al WebMaster del Sito Comune, cosi' e' a
disposizione di tutti?
--
Roal Zanazzi
z...@iol.it


z...@iol.it
Uh, non ci avevo pensato.... boh, mi pare strano, in fondo la classe
e' al 99% opera di un altra persona (per giunta l'autore del sito
secondo me piu' importante sul VB, 
vbaccelerator.com
), e in fondo al
momento non abbiamo webmaster.........
Se volete la posto ad Ettore Maronese..... o sbaglio?


Il webmaster c'e', non preoccuparti, al limite non verra' pubblicata
subito...
--
Roal Zanazzi
z...@iol.it