Rubrik: Dateisystem | 28.07.01 |
![]() Liesst einen Stringwert (Text) aus einer (INI-)Datei und gibt diesen als Rückgabewert zurück. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 38.974 |
Deklaration:
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
Beschreibung:
Liesst einen Stringwert (Text) aus einer (INI-)Datei und gibt diesen als Rückgabewert zurück.
Parameter:
lpApplicationName | Namen des Abschnittes in der (INI-)Datei. Übergibt man hier ein "VBNullString"-Zeichen so liefert die Funktion die Namen aller Sektionen. |
lpKeyName | Schlüssel des zu lesenden Eintrags. Übergibt man hier ein "VBNullString"-Zeichen und existiert ein Abschnitt "lpApplicationName", so erhält man alle im Abschnitt gespeicherten Schlüssel. |
nDefault | Vorgabe-/Standardwert, der zurückgegeben werden soll, wenn kein Eintrag vorhanden ist. |
lpReturnedString | Puffer, der den Rückgabewert enthält (muss mit ausreichend Leerstellen gefüllt sein) |
nSize | Größe des Puffers in Bytes. |
lpFileName | Pfadangabe der (INI-)Datei |
Rückgabewert:
Bei erfolgreichem Aufruf enthält der Rückgabewert die Länge des gelesenen Strings (Textes), andernfalls wird "0" zurückgegeben.
Beispiel:
Private Declare Function GetPrivateProfileInt Lib "kernel32" _ Alias "GetPrivateProfileIntA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal nDefault As Long, _ ByVal lpFileName As String) As Long 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 ' Beispiel-Struktur in eine INI-Datei speichern Private Type BspStruc BspName As String BspStrasse As String BspHausNr As String BspAlter As Long BspTel As String End Type Private PDaten As BspStruc
' Evtl. in der INI-Datei gespeicherte Daten auslesen ' Sind keine Werte gespeichert, (Unbekannt) zurückgeben Private Sub Form_Load() Dim TmpRetStr As String * 1280 Dim RetVal As Long With PDaten RetVal = GetPrivateProfileString("Persönliche Daten", "Name", _ "Unbekannt" & vbNullChar, TmpRetStr, Len(TmpRetStr), _ App.Path & "\Daten.ini") .BspName = Left$(TmpRetStr, RetVal) RetVal = GetPrivateProfileString("Persönliche Daten", "Straße", _ "Unbekannt" & vbNullChar, TmpRetStr, Len(TmpRetStr), _ App.Path & "\Daten.ini") .BspStrasse = Left$(TmpRetStr, RetVal) RetVal = GetPrivateProfileString("Persönliche Daten", _ "Haus Nummer", "Unbekannt" & vbNullChar, TmpRetStr, Len(TmpRetStr), _ App.Path & "\Daten.ini") .BspHausNr = Left$(TmpRetStr, RetVal) .BspAlter = GetPrivateProfileInt("Persönliche Daten", "Alter", 0, _ App.Path & "\Daten.ini") RetVal = GetPrivateProfileString("Persönliche Daten", "Telefonnummer", _ "Unbekannt" & vbNullChar, TmpRetStr, Len(TmpRetStr), _ App.Path & "\Daten.ini") .BspTel = Left$(TmpRetStr, RetVal) End With End Sub
' Daten in INI-Datei speichern Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) With PDaten WritePrivateProfileString "Persönliche Daten", "Name", _ .BspName, App.Path & "\Daten.ini" WritePrivateProfileString "Persönliche Daten", "Straße", _ .BspStrasse, App.Path & "\Daten.ini" WritePrivateProfileString "Persönliche Daten", "Haus Nummer", _ .BspHausNr, App.Path & "\Daten.ini" WritePrivateProfileString "Persönliche Daten", "Alter", _ CStr(.BspAlter), App.Path & "\Daten.ini" WritePrivateProfileString "Persönliche Daten", "Telefonnummer", _ .BspTel, App.Path & "\Daten.ini" End With End Sub
' Daten ändern Private Sub Command1_Click() Dim TmpStr As String With PDaten .BspName = InputBox("Geben Sie Ihren Name ein.", _ "Namen eingeben", "Manfred") .BspStrasse = InputBox("Geben Sie die Strasse ein.", _ "Strasse eingeben", "Berliner Strasse") .BspHausNr = InputBox("Geben Sie die Hausnummer.", _ "Hausnummer eingeben", "96b") TmpStr = InputBox("Geben Sie Ihr Alter ein.", _ "Alter eingeben", "45") If IsNumeric(TmpStr) = False Then .BspAlter = 0 Else .BspAlter = TmpStr End If .BspTel = InputBox("Geben Sie Ihre Telefonnummer ein.", _ "Telefonnummer eingeben", "555 - 667788") End With End Sub
' Daten in MsgBox anzeigen Private Sub Command2_Click() With PDaten MsgBox "Name: " & .BspName & vbCrLf & _ "Straße: " & .BspStrasse & " " & .BspHausNr & vbCrLf & _ "Alter: " & .BspAlter & vbCrLf & _ "Telefon: " & .BspTel, vbOKOnly, "Hallo " & .BspName End With End Sub