CheckBox in ini file

Status
Niet open voor verdere reacties.

old Hippy

Gebruiker
Lid geworden
24 mei 2008
Berichten
911
Hallo allemaal

Kan je de instelling van een checkbox op slaan in een inifile.?
dus checked false of True

en deze dan weer terug halen?????

Old Hippy
 
Ja natuurlijk kan dat.

zal er als volgt ongeveer uitzien:
[CheckBoxInstellingen]
Checked=1 #1 = true || 0 = false

ps: je zou eens xml moeten proberen. Aangezien ini amper nog wordt gebruikt, en MS xml ook aanraadt

Veel succes!
 
Hi MatthiWare
Bedankt voor je reactie

Snap de code niet helemaal waar zou ik die moeten plaatsen??
xml heb ik helemaal geen ervaring mee.
Maar wel leergierig dus als je mij kan helpen met xml in dit geval graag.
 
Ik heb zelf nog nooit een ini bestand moeten schrijven dus weet ik het ook niet direct maar JoZ1 heeft ooit eens een handleiding erover geschreven vind het niet direct :\

Voor het schrijven zou je deze code kunnen gebruiken:
Code:
Dim schrijver As New XmlTextWriter("D:\Test.xml", Encoding.UTF8)
        schrijver.Formatting = Formatting.Indented
        schrijver.WriteStartDocument()

        schrijver.WriteStartElement("Instellingen")

        schrijver.WriteStartElement("CheckBox1")
        schrijver.WriteAttributeString("Checked", CType(CheckBox1.Checked, Integer).ToString())
        schrijver.WriteEndElement()

        schrijver.WriteEndElement()

        schrijver.WriteEndDocument()
        schrijver.Flush()
        schrijver.Close()

En voor het lezen:
Code:
Dim lezer As New XmlTextReader("D:\Test.xml")

        While (lezer.Read)
            If (lezer.NodeType = XmlNodeType.Element) Then

                If (lezer.Name = "CheckBox1") Then
                    CheckBox1.Checked = CType(lezer.GetAttribute("Checked"), Integer)
                End If

            End If

        End While
        lezer.Close()

Veel succes!
 
OK Hartelijk dank
Ik ga hier even mee expirimenteren.

en kijken of er in mijn app iets mee kan.

bedankt en mischien reageerd JoZ1 nog op de ini ik wil bijde mogelijkheden uit proberen.

groet Old Hippy
 
Nog een vraagje MatthiWare

met 1 CheckBox werkt het maar wat als het er meer zijn
 
Ik gebruik dit om te schrijven en te lezen naar ini , komt ergens van dit forum.

Maar dit is alleen met textboxen .

Code:
Public Class Form1
    Public Class IniFile

        Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
            (ByVal lpApplicationName As String, _
             ByVal lpKeyName As String, _
             ByVal lpDefault As String, _
             ByVal lpReturnedString As System.Text.StringBuilder, _
             ByVal nSize As Integer, _
             ByVal lpFileName As String) _
         As Integer

        Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
            (ByVal lpApplicationName As String, _
             ByVal lpKeyName As String, _
             ByVal lpString As String, _
             ByVal lpFileName As String) _
        As Integer

        Public Property Path As String

        ''' <summary>
        ''' IniFile Constructor
        ''' </summary>
        ''' <param name="IniPath">The path to the INI file.</param>
        Public Sub New(ByVal IniPath As String)
            _Path = IniPath
        End Sub

        ''' <summary>
        ''' Read value from INI file
        ''' </summary>
        ''' <param name="section">The section of the file to look in</param>
        ''' <param name="key">The key in the section to look for</param>
        Public Function ReadValue(ByVal section As String, ByVal key As String) As String
            Dim sb As New System.Text.StringBuilder(255)
            Dim i = GetPrivateProfileString(section, key, "", sb, 255, Path)
            Return sb.ToString()
        End Function

        ''' <summary>
        ''' Write value to INI file
        ''' </summary>
        ''' <param name="section">The section of the file to write in</param>
        ''' <param name="key">The key in the section to write</param>
        ''' <param name="value">The value to write for the key</param>
        Public Sub WriteValue(ByVal section As String, ByVal key As String, ByVal value As String)
            WritePrivateProfileString(section, key, value, Path)
        End Sub

    End Class

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ini As New IniFile("C:\som\TheFile.ini")
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ini As New IniFile("C:\som\TheFile.ini")
        ini.WriteValue("Aantal_Flessen", "Cola", TextBox1.Text)
        ini.WriteValue("Aantal_Flessen", "Sisi", TextBox2.Text)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim ini As New IniFile("C:\som\TheFile.ini")
        TextBox1.Text = ini.ReadValue("Aantal_Flessen", "Cola")
        TextBox2.Text = ini.ReadValue("Aantal_Flessen", "sisi")
    End Sub
End Class
 
Weet je hoeveel checkboxen je gaat hebben?
Dan kan je deze gebruiken voor te schrijven:
Code:
Dim schrijver As New XmlTextWriter("D:\Test.xml", Encoding.UTF8)
        schrijver.Formatting = Formatting.Indented
        schrijver.WriteStartDocument()

        schrijver.WriteStartElement("Instellingen")

        schrijver.WriteStartElement("CheckBox1")
        schrijver.WriteAttributeString("Checked", CType(CheckBox1.Checked, Integer).ToString())
        schrijver.WriteEndElement()

        schrijver.WriteStartElement("CheckBox2")
        schrijver.WriteAttributeString("Checked", CType(CheckBox2.Checked, Integer).ToString())
        schrijver.WriteEndElement()

        schrijver.WriteStartElement("CheckBox3")
        schrijver.WriteAttributeString("Checked", CType(CheckBox3.Checked, Integer).ToString())
        schrijver.WriteEndElement()

        schrijver.WriteEndElement()

        schrijver.WriteEndDocument()
        schrijver.Flush()
        schrijver.Close()

En voor te lezen:
Code:
Dim lezer As New XmlTextReader("D:\Test.xml")

        While (lezer.Read)
            If (lezer.NodeType = XmlNodeType.Element) Then

                If (lezer.Name = "CheckBox1") Then
                    CheckBox1.Checked = CType(lezer.GetAttribute("Checked"), Integer)
                End If

                If (lezer.Name = "CheckBox2") Then
                    CheckBox2.Checked = CType(lezer.GetAttribute("Checked"), Integer)
                End If

                If (lezer.Name = "CheckBox3") Then
                    CheckBox3.Checked = CType(lezer.GetAttribute("Checked"), Integer)
                End If
            End If

        End While
        lezer.Close()

Veel succes
 
OK Bedankt deze is ook opgelost
JoZ1 en MatthiWar Bij de heel hartelijk bedankt.

En Doofenshmirt natuurlijk ook
Groet Old Hippy evenvergeten sorry
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan