Leer y grabar datos en archivos INI

Estas son las declaraciones que necesitas para acceder a los ficheros INI:

' Declaración de Funciones API de Windows
Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
         (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 Any, ByVal lpDefault As String, _
          ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
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

La función de Grabar datos:

Sub Grabar_INI(Grabar As String, NombreSeccion As String, NombreCampo As String, DirectorioINI As String)
    ' Grabar - Contiene el texto que queremos grabar
    ' NombreSeccion - Los ficheros INI se clasifican en secciones, aquí le indicamos en que sección queremos grabar
    ' NombreCampo - EL campo donde queremos grabar el dato
    ' DirectorioINI - Indica el camino completo donde esta situado el fichero INI

    Dim Res As Long
    Res = WritePrivateProfileString(NombreSeccion, NombreCampo, Grabar, DirectorioINI)
End Sub

Para leer, hay que diferenciar si leemos una cadena o un número:

Function Leer_Cadena_INI(NombreSeccion As String, NombreCampo As String, DirectorioINI As String, _
             Defecto As String) As String
    ' NombreSeccion - Los ficheros INI se clasifican en secciones, aquí le indicamos en que sección queremos grabar
    ' NombreCampo - EL campo donde queremos grabar el dato
    ' DirectorioINI - Indica el camino completo donde esta situado el fichero INI
    ' Defecto - Contiene el valor que devolvera la función en caso de que no exista 
    ' ninguna valor para el campo que queremos leer

    Dim Auxiliar As String * 400, Res As Long
    Res = GetPrivateProfileString(NombreSeccion, NombreCampo, Defecto, Auxiliar, Len(Auxiliar), DirectorioINI)
    Leer_Cadena_INI = Left$(Auxiliar, Res)
End Function

Function Leer_Numero_INI(NombreSeccion As String, NombreCampo As String, DirectorioINI As String, _
             Defecto As Integer) As Long
    ' NombreSeccion - Los ficheros INI se clasifican en secciones, aquí le indicamos en que sección queremos grabar
    ' NombreCampo - EL campo donde queremos grabar el dato
    ' DirectorioINI - Indica el camino completo donde esta situado el fichero INI
    ' Defecto - Contiene el valor que devolvera la función en caso de que no exista ninguna 
    ' valor para el campo que queremos leer

    Leer_Numero_INI = GetPrivateProfileInt(NombreSeccion, NombreCampo, Defecto, DirectorioINI)
End Function
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s