Komplette Sektion aus INI in andere Verschieben

  • VB.NET
  • .NET 5–6

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Komplette Sektion aus INI in andere Verschieben

    Moin Zusammen,

    ich möchte für ein Projekt die Möglichkeit haben, einen Kompletten INI-Abschnitt von einer INI in eine andere zu verschieben.

    Quellcode

    1. [GDT]
    2. Pfad=C:\GDT
    3. Read=edv2nw.gdt
    4. Write=nw2edv.gdt
    5. [...]


    Dieser soll von Datei A nach Datei B umziehen (und bei bedarf zurück, aber das ergibt sich ja).

    Folgende Methoden habe ich bereits Deklariert:

    VB.NET-Quellcode

    1. 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
    2. 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
    3. Private Declare Ansi Function GetPrivateProfileNames Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Integer, ByVal lpDefault As String, ByVal lpszReturnBuffer() As Byte, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    4. Private Declare Ansi Function GetPrivateProfileSectionNames Lib "kernel32" Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer() As Byte, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    5. Private Declare Ansi Function WritePrivateProfileSection Lib "kernel32.dll" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
    6. 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 String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32


    Gibt es eine einfachere Möglichkeit, als wirklich jeden einzelnen Schlüssel von Hand per GetKeyValue auszulesen und quasi "Händisch" zu übertragen?
    Gäbe es die Möglichkeit einfach alle Keys einer Section in einen Array zu schreiben, und anschließend wieder zurück? Wenn ja, wie?
    @PapaBeer92 Inwieweit bist Du an das Medium INI-Datei gebunden?
    Andere Medien, insbesondere XML-Dateien, bieten andere Möglichkeiten.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!