Attribute VB_Name = "Module1"
'Declaración de las funciones API's para escribir y leer archivos INI.
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

'Función para leer los datos en archivos INI:
Public Function INI_Read(Filename As String, Key_Value As String, Key_Name As String, Optional ByVal Default As String) As String
    'On Error GoTo ErrOut
    Dim Size As Integer
    Dim value As String

    'Comprobamos que el archivo existe.
    If Not SYS_FileExists(Filename) Then Err.Raise 53

        'Se define el tamaño maximo de caracteres
        'que podra tener la variable Value
        value = Space(200)
        'Se utiliza la función para obtener
        'el valor de la clave
        Size = GetPrivateProfileString(Key_Value, Key_Name, "", value, Len(value), Filename)
        'Si el tamaño es mayor a -1 entonces
        'se ha encontrado el valor de la clave
        If Size > 0 Then
            value = Left$(value, Size)
        Else
            INI_Read = Default
        End If

    'Devolver el dato...
    'Verificar que el dato no sea nulo,
    'en caso de ser nulo de se devuelve
    'el valor por defecto (Default)
    If Len(value) Then
        INI_Read = value
    Else
        INI_Read = Default
    End If
    Exit Function
ErrOut:
INI_Read = Default
End Function

'Función para escrbir datos en archivos INI.
Public Function INI_Write(Filename As String, Key_Value As String, Key_Name As String, value As String) As Long
'On Error GoTo ErrOut
Dim Size As Integer

'Escribimos el valor de la clave en el INI
Size = WritePrivateProfileString(Key_Value, Key_Name, value, Filename)
INI_Write = 1
Exit Function

ErrOut:
INI_Write = 0
End Function



