Conexión por medio de ini

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

1 respuesta

Respuesta
1
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)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas