Actualmente tengo una aplicación en VB 6.0 y trabaja con una BD Access 97. Necesito que dicha aplicación cargue la ubicación de la BD desde un archivo ini. El problema es que tengo entendido que se puede realizar de esta manera, pero no tengo la más remota idea de como configurar el archivo ini, ni como trabajarlo desde el visual basic. Te agradecería me orientes en la solución de mi problema y si es posible me puedas alcanzar un ejemplo. Gracias de antemano. Micha
De la forma que me pides es justo la que yo utilizo. Un archivo ini no es más que un archivo de texto que se divide en secciones, y dentro de las secciones tiene claves, es un "registro" de windows antiguo, un ejemplo de un archivo ini mio [general] ; DatGes indica donde están los datos del programa de gestión (lo que empieza por punto y coma es un comentario) ;ubicación de los datos DatGes=\\servidor\c\Datos\ ; Datos de programa general (Plan Contable General, estructura...) DatGen=.\Datos\ ;Directorio donde se guardan las imágenes DirImgagen=.\Datos\Imagenes\ ;Directorio donde se guardan los documentos (Word...) DirDocum=.\Datos\Documento\ ; Empresa con la que estábamos trabajando la última vez CodEmp=0001 ; Ejercicio con el que estamos trabajando Ejer="02" ;Conexión para impresora de Tickets ;Si es igual a "" entonces no hay impresora [Terminal] NumTerminal=0 SerDocDef=A Tipo=TPV NomImpTicket=Impresora ModImpTicket=GENERICA La palabra entre corchetes indica una sección, desde debajo de unos corchetes hasta los siguientes están las claves de cada sección con el formato clave=valor para trabajar con archivos ini se utilizan las api. Yo tengo una clase específica para ello, de la que te mando el código /////////////////////////// 'Declaraciones para leer ficheros INI Private 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 Private 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 ' Módulo para trabajar con archivos INI Public NomFicIni As String 'Nombre del fichero (sin .ini) para la configuraci´n ' El fichero se considera que está en el mismo directorio que el programa Public Function LeerIni(ByVal Seccion As String, ByVal Clave As String, Optional ByVal VDefecto As Variant) As String If IsMissing(VDefecto) Then LeerIni = GetSetting(NomFicIni, Seccion, Clave) Else LeerIni = GetSetting(Seccion, Clave, VDefecto) End If End Function Private Function GetSetting(ByVal Seccion As String, ByVal Clave As String, Optional ByVal VDefecto As Variant) As String Dim LpString As String Dim LTmp As Long Dim sRetVal As String 'Si no se especifica el valor por defecto, 'asignar incialmente una cadena vacía If IsMissing(VDefecto) Then LpString = "" Else LpString = CStr(VDefecto) End If sRetVal = String$(255, 0) LTmp = GetPrivateProfileString(Seccion, Clave, LpString, sRetVal, Len(sRetVal), NomFicIni) If LTmp = 0 Then GetSetting = LpString Else GetSetting = Left(sRetVal, LTmp) End If End Function Public Sub GuardarIni(ByVal lpSeccion As String, ByVal lpClave As String, ByVal LpString As String) SaveSetting lpSeccion, lpClave, LpString End Sub Private Sub SaveSetting(ByVal lpSeccion As String, ByVal lpClave As String, ByVal LpString As String) Dim LTmp As Long LTmp = WritePrivateProfileString(lpSeccion, lpClave, LpString, NomFicIni) End Sub //////////////////// El funcionamiento es el siguiene ' Definimos una instancia de la clase Dim Configura as New CConfiguracion ' Para guardar los valores que leamos del ini dim Valor as string ' Asignamos con que fichero ini queremos trabajar configura.nomficini="Nombre del fichero ini" 'Leemos del fichero ini (asignado anteriormente) en la sección y la clave elegidas, si dicha clave no existe en la sección se toma valor por defecto valor= configura.LeerIni("Seccion", "Clave", valor por defecto)