Enviado por Yuri
Código fuente para leer y escribir en archivos de configuración local (*.ini).
'Esta funcion la encontre cuando necesitaba validar ciertos parametros de 'manera externa y antes de ejecutar mi sistema. Ahora cada uno le puede 'dar el uso que mas le convenga. No recuerdo exactamente 'donde la encontre pero aclaro que fue asi, no la hago de mi propiedad. 'En un modulo Bas ponemos el siguiente codigo '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 '********************* INVOCACION ***************** 'Si nuestro archivo Ini ( Config.Ini ) es asi [General] Ruta="C:Sistema" BaseDatos="Clientes.Mdb" 'En nuestro programa hacemos asi: cRutaActual = INI_Read("Config.ini", "General", "Ruta", "C:") cBaseDatos = INI_Read( "Config.Ini", "General", "BaseDatos", "Data.Mdb" ) 'El ultimo parametro de invocacion son los valores default en caso no se 'encuentre nada en el archivo Ini, como medida de consistencia '