VB.NET – Leer y escribir archivos .ini

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.

1 comentario en «VB.NET – Leer y escribir archivos .ini»

Deja un comentario