Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 2 van 2

Onderwerp: Configuratiebestanden - VB.NET

  1. #1
    Giga Senior JoZ1's avatar
    Geregistreerd
    17 december 2010
    Locatie
    Nieuwegein
    Afstand tot server
    ±90 km
    Vraag is opgelost

    Configuratiebestanden - VB.NET

    In deze handleiding ga ik uitleggen hoe je INI-bestanden (configuratiebestanden) gebruikt in VB.NET. Het enige dat je nodig hebt is: Microsoft Visual Studio met Visual Basic.

    Stap 1:

    Voeg als eerst deze class toe:

    CPP Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    
    ''//-----------------//
    ''//JoZ1 - Helpmij.nl//
    ''//    3-10-2012    //
    ''//-----------------//
     
    Public Class IniFile
        ''//API Functions
        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
        Private Declare Ansi Function GetPrivateProfileInt _
      Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal nDefault As Integer, _
      ByVal lpFileName As String) As Integer
        Private Declare Ansi Function FlushPrivateProfileString _
          Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
          (ByVal lpApplicationName As Integer, _
          ByVal lpKeyName As Integer, ByVal lpString As Integer, _
          ByVal lpFileName As String) As Integer
     
     
        ''//Constructor
        Public Sub New(ByVal FileName As String)
            _FileName = FileName
        End Sub
     
        Private _FileName As String
        Public ReadOnly Property FileName() As String
            Get
                Return _FileName
            End Get
        End Property
     
        Public Function GetString(ByVal Section As String, _
           ByVal Key As String, Optional ByVal [Default] As String = "") As String
     
            Dim count As Integer
            Dim retVal As New System.Text.StringBuilder(256)
            count = GetPrivateProfileString(Section, Key, _
               [Default], retVal, retVal.Capacity, FileName)
            If count > 0 Then GetString = _
               Left(retVal.ToString, count) Else GetString = [Default]
     
        End Function
     
        Public Sub WriteString(ByVal Section As String, _
            ByVal Key As String, ByVal Value As String)
            WritePrivateProfileString(Section, Key, Value, FileName)
            Flush()
        End Sub
     
        Private Sub Flush()
            FlushPrivateProfileString(0, 0, 0, FileName)
        End Sub
    End Class


    Stap 2:
    Nu laat ik je zien hoe een INI-bestand er eigenlijk uit ziet.
    Een INI-bestand bestaat uit:
    - Secties
    - Sleutels
    - Waarden

    In secties bevinden zich sleutels. En elke sleutel heeft een waarde (kan ook leeg zijn).

    Voorbeeld:
    Code:
    [sectie]
    sleutel=waarde
    Ander voorbeeld:

    Code:
    [General]
    Version=1.0
    Publisher=JoZ1
    [Settings]
    Language=English
    General en Settings zijn secties.
    Version, Publisher en Language zijn sleutels.
    1.0, JoZ1 en English zijn waarden.

    Stap 3:
    Hoe te programmeren? Het werkt heel simpel. Je moet eerst het pad waar het configuratiebestand in staat opgeven. Dus als deze staat in C:\Temp\Config.ini doe je het zo:

    CPP Code:
    1
    
    Dim ini As New IniFile("C:\Temp\Config.ini")

    Ik gebruik het 2e voorbeeld van Stap 2.

    We willen wie de uitgever is. Dan gebruiken we deze code:
    CPP Code:
    1
    
    Dim uitgever As String = ini.GetString("General", "Publisher")


    En als we de versie willen veranderen in 2.0 doen we dit:
    CPP Code:
    1
    
    ini.WriteString("General", "Version", "2.0")

    Je gebruikt dus de GetString en de WriteString functie voor het verkrijgen en schrijven.

    Download hier het voorbeeldproject.

    Screenshot:
    Laatst aangepast door JoZ1 : 3 oktober 2012 om 21:37 Reden: Nieuwe klasse


  2. #2
    Senior Member Maximvdw's avatar
    Geregistreerd
    7 februari 2009
    Locatie
    Belgie, Humbeek
    Wil gewoon maar zeggen dat ik deze tut geweldig vind, en dat ze me goed opweg heeft geholpen om met behulp van INI files verschillende talen toe te voegen in mijn programma (zoals je op een andere topic had aangeraden)


    Bukkit Plugin Developer @ mvdw-software.be

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren