jueves, 8 de abril de 2010

Leer archivos ini en Visual Studio - VB

hola amigos :D en este post mostrare como leer un arhvibo de estencion ini
antes de empresar. Les dire en que caso me ah pasado y que al usar archivos ini me ayudado a solucionar el problema

1. Cuando desarrollamos una aplicacion que se conecta a una base de datos, en nuestra aplicacion ponemos la cadena de conexion en donde espesicifamos el nombre del servidor, usuario y clave que es lo mas comun entonces cuando instalamos nuestra aplicacion en el cliente el nombre del servidor donde esta la base de datos no es el mismo que el nombre del servidor que se esta trabajando y ensima nuestra aplicacion esta como instalador y no podria modificarse en ese momento entonces aqui podria donde use arhivos ini donde entre al archivo y modifique el nombre del servidor a donde se quiere conectar la aplicacion y resolvi el problema :D

bueno ahora mostrare el codigo de en donde lee el archivo ini

Public Class Dcini
'Funciones de la API de Windows
Private Declare Function GetPrivateProfileStringKey Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer

Private Declare Function GetPrivateProfileStringNullKey Lib "kernel32" _
Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As Integer, ByVal lpDefault As String, ByVal _
lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName _
As String) As Integer
Private Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Object, ByVal lpString As Object, ByVal lpFileName As String) As Long
Public Function LeerINI(ByVal sINIFile As String, ByVal sSection As String, ByVal sKey As String, ByVal sDefault As String) As String
Dim sTemp As String '* 256
Dim nLength As Integer
sTemp = Space$(256)
nLength = GetPrivateProfileStringKey(sSection, sKey, sDefault, sTemp, 255, sINIFile)
LeerINI = Left$(sTemp, nLength)
End Function
Public Sub EscribirINI(ByVal sINIFile As String, ByVal sSection As String, ByVal sKey As String, ByVal sValue As String)
Dim n As Integer
Dim sTemp As String
sTemp = sValue
For n = 1 To Len(sValue)
If Mid$(sValue, n, 1) = vbCr Or Mid$(sValue, n, 1) = vbLf Then
Mid$(sValue, n) = ""
End If
Next n
n = WritePrivateProfileString(sSection, sKey, sTemp, sINIFile)
End Sub
End Class


Esta es mi clase donde esta el codigo de leer y escribir arhivos ini entonces desde mi aplicacion windows llamae a mi clase

dim objdcini As New CMPServicios.Dcini
Dim ServidorDB As String
ServidorDB = Me.objdcini.LeerINI(Application.StartupPath & "\Sistema.ini", "sistema", "servidor", "?")

y esto es lo que tiene mi arhivo ini que se llama Sistema.ini




Entonces
-Application.StartupPath & "\Sistema.ini" : Obtengo la ruta donde esta mi archivo ini que lo agrege a la carpeta debug de mi aplicacion y ahi mismo agrego el archivo

-sistema: es el nombre que esta en corchetes en el arhivo ini que se llama sistema.ini

-servidor: es el nombre que esta en el archivo ini, en donde almacena el nombre MIPC

y como resultado tiene que aparecer en la aplicacion el nombre MIPC que esta guardado en el archivo ini

Pegruntas o Comentarios ponganlo en mi Blog :D

Saludos
Victor Altamirano Vasquez

3 comentarios:

Anónimo dijo...

No funciona no trae los datos del archivo .ini

Anónimo dijo...

Debes de ser muy bueno en informática. Pero en ortografía... lo tuyo es horror-tografía.

Anónimo dijo...

Gracias amigo, me sirvió. El que comenta de la ortografía seguramente se cree superior ya que algún traductor le traduce lo que escribe y siente que salvó el día al comentarlo.