INI-Editor

Mit einer INI-Library können Daten in einem Programm einfach in einer Datei zur Konfiguration gelesen oder gespeichert werden. Dazu erstellt man einfach eine neue Klasse mit dem Namen INILibrary mit dem unten Aufgeführten Inhalt. Der Kommentar über dem Konstruktor zeigt, wie man ein neues Objekt der Klasse erzeugt. Der Aufruf der Entsprechenden Methode führt dann zum Ziel.

Quellcode der INILibrary-Klasse

Option Strict On
Option Explicit On
Public Class INILibrary
    Public pfad As String
    ' Konstruktor fuer setzen des Pfades
    '   Dim Inipfad As String
    '   Dim ini As New INIDatei(Inipfad)
    Sub New(ByVal INIPfad As String)
        pfad = INIPfad
    End Sub

    ' DLL-Funktionen zum LESEN der INI
    Private Declare Ansi Function lesen Lib "kernel32" Alias "GetPrivateProfileStringA" ( _
        ByVal lpApplicationName As String, ByVal lpSchluesselName As String, ByVal lpDefault As String, _
        ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    'DLL-Funktion zum SCHREIBEN in die INI
    Private Declare Ansi Function schreiben Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
        ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, _
        ByVal lpFileName As String) As Integer
    'DLL-Funktion zum LoeSCHEN einer ganzen Sektion
    Private Declare Ansi Function loeschen Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
        ByVal Section As String, ByVal NoKey As Integer, ByVal NoSetting As Integer, _
        ByVal FileName As String) As Integer

    Public Function WertLesen(ByVal Sektion As String, ByVal Schluessel As String, Optional ByVal Standardwert As String = "", Optional ByVal BufferSize As Integer = 1024) As String
        Dim sTemp As String = Space(BufferSize)
        Dim Length As Integer = lesen(Sektion, Schluessel, Standardwert, sTemp, BufferSize, pfad)
        Return Left(sTemp, Length)
    End Function

    Public Sub WertSchreiben(ByVal sektion As String, ByVal schluessel As String, ByVal wert As String)
        schreiben(sektion, schluessel, wert, pfad)
    End Sub

    Public Sub SchluesselLoeschen(ByVal sektion As String, ByVal schluessel As String)
        schreiben(sektion, schluessel, Nothing, pfad)
    End Sub

    Public Sub SektionLoeschen(ByVal Sektion As String)
        loeschen(Sektion, 0, 0, pfad)
    End Sub

    Public Sub BackupAnlegen(ByVal zielpfad As String)
        IO.File.Copy(pfad, zielpfad)
    End Sub

    Public Sub DateiLoeschen()
        IO.File.Delete(pfad)
    End Sub
End Class

Initiierung der Klasse und Methodenaufruf

Dim inipfad As String = "C:\test.ini"
Dim ini As New INILibrary(inipfad)
WertSchreiben("sektion", "schluessel", "wert")

INI-Editor

Mit einer INI-Library können Daten in einem Programm einfach in einer Datei zur Konfiguration gelesen oder gespeichert werden. Dazu erstellt man einfach eine neue Klasse mit dem Namen INI mit dem unten Aufgeführten Inhalt. Der Kommentar über dem Konstruktor zeigt, wie man ein neues Objekt der Klasse erzeugt. Der Aufruf der Entsprechenden Methode führt dann zum Ziel.

Quellcode

using System.Runtime.InteropServices;
using System.Text;

class INI
{
    public string iniPath;

    [DllImport("kernel32")]
    static extern long WritePrivateProfileString(string section, string key, string Value, string filePath);
    [DllImport("kernel32")]
    static extern int GetPrivateProfileString(string section, string key, string Default, StringBuilder RetVal, int Size, string FilePath);

    public INI(string iniPath)
    {
        this.iniPath = iniPath;
    }

    public string ReadValue(string section, string key)
    {
        StringBuilder RetVal = new StringBuilder(255);
        GetPrivateProfileString(section != null ? section : iniPath, key, "", RetVal, 255, iniPath);
        return RetVal.ToString();
    }

    public void WriteValue(string section, string key, string Value)
    {
        WritePrivateProfileString(section != null ? section : iniPath, key, Value, iniPath);
    }

    public void Deletekey(string section, string key)
    {
        WriteValue(section != null ? section : iniPath, key, null);
    }

    public void Deletesection(string section)
    {
        WriteValue(section, null, null);
    }

    public bool KeyExists(string section, string key)
    {
        return ReadValue(section, key).Length > 0 ? true : false;
    }

    public void Backup(string path)
    {
        System.IO.File.Copy(iniPath, path);
    }

    public void DeleteINI()
    {
        System.IO.File.Delete(iniPath);
    }
}

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close