En esta entrada me gustaría compartir con vosotros una forma sencilla de leer y escribir archivos .ini con vb.net.
Los archivos .ini suelen usarse para guardar valores de la configuración de nuestros programas en el formato clave=valor y estas se pueden clasificar en distintas secciones, este es un ejemplo de la estructura típica de un archivo .ini:
[Settings] BackgroundType=Image Color=Red PlaySounds=True
Cómo leer y escribir archivos .ini
Para poder leer y escribir archivos .ini agregamos una nueva clase al proyecto que se llame INI (INI.vb) y copiamos dentro este código:
Imports System.Runtime.InteropServices
Imports System.Text
Public Class INI
<DllImport("kernel32.dll", SetLastError:=True)>
Private Shared Function GetPrivateProfileString(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
End Function
<DllImport("kernel32.dll", SetLastError:=True)>
Private Shared Function WritePrivateProfileString(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Boolean
End Function
Public Shared Function ReadINI(ByVal File As String, ByVal Section As String, ByVal Key As String) As String
Try
Dim sb As New StringBuilder(500)
GetPrivateProfileString(Section, Key, "", sb, sb.Capacity, File)
Return sb.ToString
Catch ex As Exception
Return ""
End Try
End Function
Public Shared Sub WriteINI(ByVal File As String, ByVal Section As String, ByVal Key As String, ByVal Value As String)
Try
WritePrivateProfileString(Section, Key, Value, File)
Catch ex As Exception
MsgBox("Error writing value to settings file. See error description below:" & vbCrLf & vbCrLf & "File: " & File & vbCrLf & "Section: " & Section & vbCrLf & "Key: " & Key & vbCrLf & "Value: " & Value & vbCrLf & vbCrLf & ex.Message, vbCritical, "INI Class Writing Error")
End Try
End Sub
End Class
Para escribir valores dentro de nuestro archivo .ini:
'Archivo, Sección, Clave, Valor
INI.WriteINI("c:\file.ini", "Settings", "BackgroundType", "Image")
Para leer valores de nuestro archivo .ini:
'Archivo, Sección, Clave
Dim value as string = INI.ReadINI("c:\file.ini", "Settings", "BackgroundType")
MsgBox(value)
Fácil verdad?, espero que te sea útil, cualquier duda que tengas la puedes dejar en comentarios y trataré de resolverla.
Thank you for sharing.