INI-Dateien eignen sich hervorragen, um kleinere Datenmengen zu verwalten (speichern und lesen). Unser nachfolgender Tipp demonstriert die Vorgehensweise, um bestimmte Daten in eine solche INI-Datei zu speichern und wieder auszulesen. ' zunächst die benötigten API-Deklarationen ' Achtung, die Originale wurden etwas umbenannt ' Orginal: ' Private Declare Function GetPrivateProfileString Lib "kernel32" _ ' Alias "GetPrivateProfileStringA" ( _ ' ByVal lpApplicationName As String, _ ' ByVal lpKeyName As Any, _ ' ByVal lpDefault As String, _ ' ByVal lpReturnedString As String, _ ' ByVal nSize As Long, _ ' ByVal lpFileName As String) As Long ' ' Private Declare Function WritePrivateProfileString Lib "kernel32" _ ' Alias "WritePrivateProfileStringA" ( _ ' ByVal lpApplicationName As String, _ ' ByVal lpKeyName As Any, _ ' ByVal lpString As Any, _ ' ByVal lpFileName As String) As Long ' Special-Variante Private Declare Function ReadIni Lib "kernel32" _ Alias "GetPrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long Private Declare Function WriteIni Lib "kernel32" _ Alias "WritePrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long ' Der Inhalt, welcher aus der INI-Datei ausgelesen wird, ' landet in RetStr Private RetStr As String ' INI-Dateien sind folgendermaßen aufgebaut: ' Es gibt einen Applications Teil, welcher in ' eckigen Klammern steht ' Beispiel: [Programm Config] ' Darunter stehen dann die Key's; Name = Inhalt ' ' Eine INI-Datei, in der z.B. die Koordinaten einer Form ' gespeichert sind könnte so aussehen: ' [Form1] ' Left=200 ' Top=200 ' Width=400 ' Hight=300 ' Caption="Ini Lesen/Schreiben von Lonely Suicide 666" ' ' Nachfolgendes Beispiel demonstriert, wie man die Koordinaten ' und die Caption-Eigenschaft einer Form in einer INI-Datei ' speichert und wieder einliest ' ' INI-Daten lesen und Form-Eigenschaften setzen Public Function Get_FormConfig(ByRef F As Form, _ ByVal IniPath As String) ' RetStr mit 256 Leerzeichen füllen RetStr = Space(256) ' Anmerkung: Wird anstelle des lpApplicationName ' ein Nullstring angegeben, erhält man alle Appliction- ' Namen der gesamten INI-Datei. ' Das gleiche gilt auch für die lpKeyName Eigenschaft ' Daten Lesen, wenn die INI-Datei nicht existiert, wird die ' Standard Left-Eigenschaft der Form zurückgegeben (F.Left) ReadIni F.Name, "Left", F.Left, RetStr, Len(RetStr), IniPath ' Nullcharzeichen abtrennen, in einen Long-Wert umwandeln ' und der Form zuweisen F.Left = CLng(Left$(RetStr, InStr(1, RetStr, _ vbNullChar) - 1)) ' Das gleiche nun für alle anderen Eigenschaften RetStr = Space(256) ReadIni F.Name, "Top", F.Top, RetStr, Len(RetStr), _ IniPath F.Top = CLng(Left$(RetStr, InStr(1, RetStr, _ vbNullChar) - 1)) RetStr = Space(256) ReadIni F.Name, "Width", F.Width, RetStr, Len(RetStr), _ IniPath F.Width = CLng(Left$(RetStr, InStr(1, RetStr, _ vbNullChar) - 1)) RetStr = Space(256) ReadIni F.Name, "Height", F.Height, RetStr, Len(RetStr), _ IniPath F.Height = CLng(Left$(RetStr, InStr(1, RetStr, _ vbNullChar) - 1)) RetStr = Space(256) ReadIni F.Name, "Caption", F.Caption, RetStr, _ Len(RetStr), IniPath F.Caption = Left$(RetStr, InStr(1, RetStr, vbNullChar) - 1) End Function ' Schreiben der Eigenschaften in die INI-Datei Public Function Set_FormConfig(ByVal F As Form, _ ByVal IniPath As String) ' Beim Schreiben der INI-Dateien gilt: ' Existiert die INI-Datei noch nicht, so wird sie angelegt ' Übergibt man einen NullString an den lpApplicationName ' oder lpKeyName werden alle Applicationen oder Key's ' (inkl. Werten) gelöscht ' Übergibt man z.B. anstelle von lpApplicationName und ' lpKeyName beidemale einen NullString, löscht man die ' gesamte INI-Datei ' Schreibt einen Eintrag in eine INI-Datei ' (Umwandeln in einen String nicht vergessen) WriteIni F.Name, "Left", CStr(F.Left), IniPath ' alle anderen Form-Eigenschaften WriteIni F.Name, "Left", CStr(F.Left), IniPath WriteIni F.Name, "Top", CStr(F.Top), IniPath WriteIni F.Name, "Width", CStr(F.Width), IniPath WriteIni F.Name, "Height", CStr(F.Height), IniPath WriteIni F.Name, "Caption", F.Caption, IniPath End Function ' Der nachfolgende Code ist für die Form bestimmt Private Sub Form_Load() ' Lesen der gespeicherten Daten (ggf. Dafult-Werte setzen) Get_FormConfig Me, App.Path & "\Config.ini" End Sub Private Sub Form_QueryUnload(Cancel As Integer, _ UnloadMode As Integer) ' Speichern der aktuellen Eigenschaften Set_FormConfig Me, App.Path & "\Config.ini" End Sub Was geschieht genau? Dieser Tipp wurde bereits 33.277 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |