Search code examples
vb.netwinformstextboxopenfiledialog

Open INI file and place content in different textboxes


I am creating a program in VB.net that opens a .INI file and reads the content. I wrote the following code:

   Private Sub OpenINIButton_Click(sender As Object, e As EventArgs) Handles OpenINIButton.Click
    Dim OpenDLG As New OpenFileDialog
    Dim FileLocation = OpenDLG.FileName.ToString()

    OpenDLG.Filter = "INI File (*.ini)|*.ini"
    OpenDLG.Title = "Open INI File"
    OpenDLG.InitialDirectory = "C:\"
    OpenDLG.RestoreDirectory = True

    DialogResult = OpenDLG.ShowDialog

    If DialogResult = Windows.Forms.DialogResult.OK Then

        TextBox1.Text = ReadIni(FileLocation, INIkey, INIvalue, "")

    ElseIf DialogResult = Windows.Forms.DialogResult.Cancel Then

    End If

End Sub

The open file dialog opens and I can open a INI file but the value of INIkey is not placed in TextBox1.

Any idea how I can fix this?


Solution

  • The best way to do this would be to make an iniParse module like below and just use the function as shown:

    Module iniParse
    Public readwrtie As Integer
    Public settingValueReturn As New System.Text.StringBuilder(255)
    
    Private Declare Auto Function WritePrivateProfileString Lib "Kernel32" _
    (ByVal IpApplication As String, ByVal Ipkeyname As String, _
    ByVal IpString As String, ByVal IpFileName As String) As Integer
    
    Private Declare Auto Function GetPrivateProfileString Lib "Kernel32" _
    (ByVal IpApplicationName As String, ByVal IpKeyName As String, _
    ByVal IpDefault As String, ByVal IPReturnedString As System.Text.StringBuilder, _
    ByVal nsize As Integer, ByVal IpFileName As String) As Integer
    
    Public Sub WriteINIFile(heading As String, setting As String, settingvalue As String, path As String)
        WritePrivateProfileString(heading, setting, settingvalue, path)
    End Sub
    
    Public Sub ReadIniFile(heading As String, setting As String, path As String)
        GetPrivateProfileString(heading, setting, "", settingValueReturn, 100, path)
    End Sub
    
    End Module
    

    Example:

    Button1_click blah blah blah handles button1.click...
         ReadIniFile("MAIN", "test", "C:\config.ini")
    'this would read the following ini file: 
    '[MAIN]
    'test=hi
    'to get that 'hi' value you would use this code:
    textbox1.text = settingReturnValue.tostring '(settingValueReturn Will always be the value of the setting entered in the function args)
    
    'to write ini file:
    Button1_click blah blah blah handles button1.click...
    WriteIniFile("MAIN", "test2", "hi2", "C:\config.ini") 
    'this would write the following to the ini @ C:\config.ini file:
    '[MAIN]
    'test2=hi2
    

    I hope this helps your needs!