' =========================================================
' Jonathan Búcaro
' =========================================================
' Clase para el manejo de configuraciones por medio de
' archivos INI.
' =========================================================
' 25/09/2009 - Creación
' =========================================================
Option Explicit
Private m_Ruta As String
Private m_Nombre As String
Private m_Seccion As String
Private m_Llave As String
Private m_Valor As String
' Clase ArchivoINI
' =================
Private Sub Class_Initialize()
m_Ruta = App.Path
m_Nombre = ""
m_Seccion = ""
m_Llave = ""
m_Valor = ""
End Sub
' Ruta donde se encuentra el Archivo INI
' ======================================
Public Property Get Ruta() As String
Ruta = m_Ruta
End Property
Public Property Let Ruta(ByVal strValue As String)
If Not Len(Trim(strValue)) = 0 Then
m_Ruta = strValue
End If
End Property
' Nombre del archivo INI
' ======================
Public Property Get Nombre() As String
Nombre = m_Nombre
End Property
Public Property Let Nombre(ByVal strValue As String)
If Not Len(Trim(strValue)) = 0 Then
m_Nombre = strValue
End If
End Property
' Sección del Archivo INI donde se encuentra la información
' =========================================================
Public Property Get Seccion() As String
Seccion = m_Seccion
End Property
Public Property Let Seccion(ByVal strValue As String)
If Not Len(Trim(strValue)) = 0 Then
m_Seccion = strValue
End If
End Property
' Sección del Archivo INI donde se encuentra la información
' =========================================================
Public Property Get Llave() As String
Llave = m_Llave
End Property
Public Property Let Llave(ByVal strValue As String)
If Not Len(Trim(strValue)) = 0 Then
m_Llave = strValue
End If
End Property
' Valor de la Llave que se encuentra dentro de una Sección en un Archivo INI
' ==========================================================================
Public Property Get Valor() As String
Valor = m_Valor
End Property
Public Property Let Valor(ByVal strValue As String)
If Not Len(Trim(strValue)) = 0 Then
m_Valor = strValue
End If
End Property
' Guarda la información al Archivo INI
' ====================================
Public Function GrabarLlave() As Boolean
Dim lRet As Long
Dim strPath As String
Dim fso As FileSystemObject
Set fso = New FileSystemObject
' Verificar que exista el Directorio
If Not fso.FolderExists(m_Ruta) Then GoTo ErrHandler
' Armar la ruta completa, incluyendo el nombre del Archivo
If Right(m_Ruta, 1) = "\" Then
strPath = m_Ruta & m_Nombre
Else
strPath = m_Ruta & "\" & m_Nombre
End If
' Grabar la información al Archivo INI
lRet = WritePrivateProfileString(m_Seccion, m_Llave, m_Valor, strPath)
If lRet = 0 Then GoTo ErrHandler
If Not fso Is Nothing Then Set fso = Nothing
GrabarLlave = True
Exit Function
ErrHandler:
If Not fso Is Nothing Then Set fso = Nothing
GrabarLlave = False
End Function
' Borra una Llave dentro de una Sección del Archivo INI
' =====================================================
Public Function BorrarLlave() As Boolean
Dim lRet As Long
Dim strPath As String
Dim fso As FileSystemObject
Set fso = New FileSystemObject
' Verificar que se hayan establecido los valores Sección y Llave
If Len(Trim(m_Seccion)) = 0 Then GoTo ErrHandler
If Len(Trim(m_Llave)) = 0 Then GoTo ErrHandler
' Verificar que exista el Directorio
If Not fso.FolderExists(m_Ruta) Then GoTo ErrHandler
' Armar la ruta completa, incluyendo el nombre del Archivo
If Right(m_Ruta, 1) = "\" Then
strPath = m_Ruta & m_Nombre
Else
strPath = m_Ruta & "\" & m_Nombre
End If
' Borra una llave dentro de una Sección del Archivo INI
lRet = WritePrivateProfileString(m_Seccion, m_Llave, vbNullString, strPath)
If lRet = 0 Then GoTo ErrHandler
If Not fso Is Nothing Then Set fso = Nothing
BorrarLlave = True
Exit Function
ErrHandler:
If Not fso Is Nothing Then Set fso = Nothing
BorrarLlave = False
End Function
' Borra una Sección del Archivo INI
' =================================
Public Function BorrarSeccion() As Boolean
Dim lRet As Long
Dim strPath As String
Dim fso As FileSystemObject
Set fso = New FileSystemObject
If Len(Trim(m_Seccion)) = 0 Then GoTo ErrHandler
' Verificar que exista el Directorio
If Not fso.FolderExists(m_Ruta) Then GoTo ErrHandler
' Armar la ruta completa, incluyendo el nombre del Archivo
If Right(m_Ruta, 1) = "\" Then
strPath = m_Ruta & m_Nombre
Else
strPath = m_Ruta & "\" & m_Nombre
End If
' Borra una seccion del Archivo INI
lRet = WritePrivateProfileString(m_Seccion, vbNullString, vbNullString, strPath)
If lRet = 0 Then GoTo ErrHandler
If Not fso Is Nothing Then Set fso = Nothing
BorrarSeccion = True
Exit Function
ErrHandler:
If Not fso Is Nothing Then Set fso = Nothing
BorrarSeccion = False
End Function
' Lee la información de una Llave dentro de una Sección del Archivo INI
' =====================================================================
Public Function LeerLlave() As Boolean
Dim lRet As Long
Dim sDefault As String
Dim sRetValue As String * 256
Dim strPath As String
Dim fso As FileSystemObject
Set fso = New FileSystemObject
' Verificar que se hayan establecido los valores Sección y Llave
If Len(Trim(m_Seccion)) = 0 Then GoTo ErrHandler
If Len(Trim(m_Llave)) = 0 Then GoTo ErrHandler
' Verificar que exista el Directorio
If Not fso.FolderExists(m_Ruta) Then GoTo ErrHandler
' Armar la ruta completa, incluyendo el nombre del Archivo
If Right(m_Ruta, 1) = "\" Then
strPath = m_Ruta & m_Nombre
Else
strPath = m_Ruta & "\" & m_Nombre
End If
sDefault = ""
lRet = GetPrivateProfileString(m_Seccion, m_Llave, sDefault, sRetValue, Len(sRetValue), strPath)
If lRet = 0 Then GoTo ErrHandler
Valor = Left(sRetValue, lRet)
LeerLlave = True
If Not fso Is Nothing Then Set fso = Nothing
Exit Function
ErrHandler:
If Not fso Is Nothing Then Set fso = Nothing
Valor = sDefault
LeerLlave = False
End Function