Hallo
Ich nutze bis dato eine INI Datei um Zustände zu speichern.
Klappt ja auch ganz gut bis auf:
Arraylisten,Array´s,...
Da kann man ja nicht einfach den Wert hineinschreiben.
Auch muss ich bei einer Ini immer dahinter sein, wenn ich in einem Modul eine neue Variable setze.
Gibts eine Möglichkeit bei vs2003 alle Variablen in einem Modul zu speichern und zu laden? Also das selbstständig das Modul "Wetter" duchforstet wird und alle enthaltenden Variablen speichert.
Wenn nicht, wie würded ihr bei einer INI Arraylisten bzw. Arrays speichern? Eine Arraylist kann ja auch controls oder ähnliches enthalten. Wie speichert man sowas in eine Ini?
Den Ini Code denn ich hier gefunden habe und den ich nutze:
Public Class INIfile
#Region " INI "
'
Public datei As String
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias _
"WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As String, ByVal lpString As String, ByVal lpFileName As _
String) As Integer
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As _
String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
'
' INI-Dateien lesen / schreiben (Declares)
'
' Text (String) in INI-Datei schreiben
Public Function IniWriteString(ByVal Sektion As String, ByVal Titel As _
String, ByVal Inhalt As String) As Integer
If Dir(datei, FileAttribute.Normal) = "" Then
IniWriteMsgDoNotEdit(datei)
End If
IniWriteString = WritePrivateProfileString(Sektion, Titel, Inhalt, _
datei)
End Function
'
Public Sub IniWriteMsgDoNotEdit(ByVal Datei As String)
Dim F As Short
F = FreeFile()
FileOpen(F, Datei, OpenMode.Output)
PrintLine(F, ";")
PrintLine(F, "; ###############################")
PrintLine(F, "; # #")
PrintLine(F, "; # Do not work on this file! #")
PrintLine(F, "; # #")
PrintLine(F, "; ###############################")
PrintLine(F, ";")
FileClose(F)
End Sub
'
'
' INI String löschen
Public Function IniDeleteString(ByVal Sektion As String, ByVal Titel As _
String) As Integer
IniDeleteString = WritePrivateProfileString(Sektion, Titel, _
vbNullString, datei)
End Function
'
' INI Abschnitt löschen
Public Function IniDeleteArray(ByVal Sektion As String) As Integer
IniDeleteArray = WritePrivateProfileString(Sektion, vbNullString, "", _
datei)
End Function
'
' INI Abschnitte löschen
Public Function IniDeleteAllArray() As Integer
IniDeleteAllArray = WritePrivateProfileString(vbNullString, "", "", _
datei)
End Function
'
' Text (String) aus INI-Datei lesen
Public Function IniReadString(ByVal Sektion As String, ByVal Titel As _
String, ByVal Vorgabe As String, ByVal Laenge As Short) As String
Dim Result As Integer
Dim Dummy As String
Dummy = Space(Laenge + 1)
Result = GetPrivateProfileString(Sektion, Titel, Vorgabe, Dummy, _
Laenge, datei)
'IniReadString = Left(Dummy, Result)
IniReadString = Dummy.Substring(0, Result)
End Function
'
' Eintrag aus INI-Datei lesen
Public Function IniReadStringGet(ByVal Sektion As String, ByVal Titel As _
String, ByVal Vorgabe As String, Optional ByVal nSize As Short = 256) As _
String
Dim lResult As Integer
Dim sValue As String
sValue = Space(nSize)
lResult = GetPrivateProfileString(Sektion, Titel, Vorgabe, sValue, _
nSize, datei)
'IniReadStringGet = Left(sValue, lResult)
IniReadStringGet = sValue.Substring(0, lResult)
End Function
'
' alle Abschnittsnamen ermitteln
Public Function IniGetArrays(ByVal Datei As String) As String 'Split(
' IniGetArrays, vbNullChar)
IniGetArrays = IniReadStringGet(vbNullString, "", "", 32767)
' BSP
'Dim Data As String
'Data = IniGetArrays(Programm_INI)
'Dim Data2() As String
'Data2 = Split(Data, vbNullChar)
'Data2(0-x) = Abschnittsnamen
End Function
'
' alle Schlüsselnamen ermitteln
Public Function IniGetStrings(ByVal Sektion As String) As String 'Split(
' IniGetArrays, vbNullChar)
IniGetStrings = IniReadStringGet(Sektion, vbNullString, "", 32767)
' BSP
'Dim Data As String
'Data = IniGetStrings("Sektion", Programm_INI)
'Dim Data2() As String
'Data2 = Split(Data, vbNullChar)
'Data2(0-x) = Schlüsselnamen
End Function
'
#End Region |