HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

INI állományok kezelése Visual Basic-ből


Példaprogram letöltése

7075 bájt

Régebbi Windows verzióknál gyakori volt, de még manapság is előfordul olyan szöveges konfigurációs állományok használata, melyek az alábbi formátumot követik:
[Section]
Key=Value
A .NET-ben minden az XML körül forog és ez így helyes is, de ha programunk - akármilyen okból is - kénytelen használni, kezelni régi INI állományokat, akkor a CLR-ben ehhez nem kapunk segítséget, a feladatot márpedig meg kell oldalunk valahogy.
E cikkben készítünk egy osztályt, melyet használva könnyedén kezelhet alkalmazásunk INI állományokat.

A megoldáshoz találunk két olyan függvényt a Windows API-ben, melyek elvégzik a munka nagy részét, így nekünk csak egy osztály létrehozása a feladatunk.
Készítsünk első lépésként egy belsőleg használt osztályt, melyben deklaráljuk a két Windows függvényt, megadva, hogy azok a Kernel32.dll-ben kaptak helyet. E két függvény felhasználásával képesek leszünk INI állományokba írni, illetve onnan kiolvasni adatokat.
  Public Class Win32
  <DllImport("kernel32")> _
  Public Shared Function WritePrivateProfileString(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
  End Function

  <DllImport("kernel32")> _
  Public 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
End Class
Ezek után már jöhet is az IniFile nevű osztály készítése.
Public Class IniFile
  Private fileName As String
Az osztály konstruktorában kell megadnunk annak az állománynak a nevét, elérési útját, melyet kezelni akarunk. Itt nincs is más teendőnk, mint a kapott értéket eltárolni a későbbi felhasználás érdekében.
  Public Sub New(ByVal FileName As String)
    FileName = FileName
  End Sub 'New
Létrehozunk két függvényt, melyek meghívják a szükséges Win API függvényeket. A WriteValue segítségével tudunk majd adatot írni az INI állományba. Ennek három paramétere van: a Section-ban adhatjuk meg, hogy melyik szekcióba írjuk az adatokat, a Key lesz a tárolandó adat megnevezése, míg a Value a tárolandó adat. Ez utóbbi object típusú, így bármilyen típusú adat tárolását elvégezhetjük, feltéve, hogy az konvertálható sztringgé. Mivel az INI állomány egy szöveges típusú állomány, így ott csak sztringek tárolhatók.
  Public Sub WriteValue(ByVal Section As String, ByVal Key As String, ByVal Value As Object)
    Win32.WritePrivateProfileString(Section, Key, Value.ToString(), fileName)
  End Sub 'WriteValue
A másik függvényünk lesz a ReadValue, mellyel kiolvashatjuk a tárolt adatokat. Itt szintén három paramétert kell megadni: a Section és a Key egyezik az előbbivel, míg a Default paraméterben megadott adat akkor kerül felhasználásra, ha a kiolvasandó adat nem szerepel az INI állományban. Ekkor a Default paraméterben megadott érték kerül visszaadásra a függvény által.
  Public Function ReadValue(ByVal Section As String, ByVal Key As String, ByVal [Default] As String) As String
    Dim sb As New StringBuilder(512)
    Win32.GetPrivateProfileString(Section, Key, [Default], sb, 512, fileName)
    Return sb.ToString()
  End Function

Cikksorozat

#IDKategóriaCikk címeSorozat
4397Windows.NET Framework konfigurálása az operációs rendszerben1. rész
4446Windows.NET Framework konfigurációs snap-in2. rész


Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |