| |
|
|
|
Beschreibung:
WritePrivateProfileStruct schreibt eine Bytefolge unter der angegebenen Rubrik und dem angegebenen Eintragsnamen in eine INI Datei. Dieser Bytefolge wird eine Checksumme angehängt. Die API kann auch ganze Rubriken und Einträge löschen und den Cache der INI auf die Festplatte schreiben.
Deklaration:
Def @WritePrivateProfileStruct(5) !KERNEL32,WritePrivateProfileStructA
Parameter:
1.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der die Rubrik für den Eintrag enthält. Ist dieser Wert, Parameter 2 und Parameter 3 null, wird der Cache der INI auf die Platte geschrieben. 2.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der den Eintragsnamen enthält. Ist dieser wert 0, wird die angegebene Rubrik gelöscht (es sei denn, Parameter 1 ist null). 3.Parameter: Bereichsvariable mit den hinzuzufügenden Daten . Ist dieser Wert 0, wird der Eintrag gelöscht (es sei denn, Parameter 1 und 2 ist null). 4.Parameter: Größe des Bereichs aus Parameter 3 in Bytes als LongInt. 5.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der Namen und Pfad der INI enthält. Existiert die Datei nicht, wird sie erzeugt.
Rückgabewert:
1 Wenn der String erfolgreich eingetragen wurde, 0 bei Misserfolg oder wenn der Cache auf die Festplatte geschrieben wurde.
Beispiele:
KompilierenMarkierenSeparierenDef @WritePrivateProfileStruct(5) !"KERNEL32","WritePrivateProfileStructA"
Def @GetPrivateProfileStruct(5) !"KERNEL32","GetPrivateProfileStructA"
Declare Section$,Key$,Wert$,File$,FileLöschen&,SectionDel&,KeyLesen&,KeyDel&,Flush&,Buffer#,Buffer%
DEclare Ausgelesen#,Ausgelesen$,Default$,Länge%
Windowstyle 31+512
Windowtitle "Struktur in eine INI schreiben und auslesen"
Window 0,0-640,440
Let Section$="Eigene Daten"
Let Key$="Mein Eintrag"
Let Wert$="Mein eigener Wert"
LET FILE$="C:TEST.INI"
Let FileLöschen&=@CreateButton(%HWND,"INI Löschen",20,200,150,30)
Let KeyLesen&=@CreateButton(%HWND,"Key "+Key$+" lesen",200,200,200,30)
Let Flush&=@CreateButton(%HWND,"INI flushen",450,200,150,30)
Let SectionDel&=@CreateButton(%HWND,"Sektion "+Section$+" Löschen",20,250,230,30)
Let KeyDel&=@CreateButton(%HWND,"Key "+Key$+" Löschen",280,250,230,30)
Let Buffer%=@len(Wert$)+1
Dim Buffer#,Buffer%
Clear Buffer#
String Buffer#,0=Wert$
@WritePrivateProfileStruct(@Addr(Section$),@Addr(Key$),Buffer#,Buffer%,@Addr(File$))
Dispose Buffer#
While %MENUITEM<>-2
Waitinput
IF @Getfocus(KeyLesen&)
CLS
Locate 0,0
Set("Errorlevel",-1)
Let Buffer%=((@len(@READINI$(File$,Section$,Key$))-2)/2)
LET AUSGELESEN$=@READINI$(File$,Section$,Key$)
Set("Errorlevel",0)
CASE BUFFER%<=0 : Let Buffer%=4
DIM Ausgelesen#,Buffer%
Clear Ausgelesen#
PRINT "Ausgelesene Struktur="+AUSGELESEN$
@GetPrivateProfileStruct(@Addr(Section$),@Addr(Key$),Ausgelesen#,Buffer%,@Addr(File$))
Print "Ausgelesener String="+@String$(Ausgelesen#,0)
LET Länge%=@len(AUSGELESEN$)-@len(@String$(Ausgelesen#,0))*2
PRINT "Checksumme=$"+@RIGHT$(AUSGELESEN$,Länge%)
Dispose Ausgelesen#
Beep 1
ElseIF @Getfocus(SectionDel&)
@WritePrivateProfileStruct(@Addr(Section$),0,0,0,@Addr(File$))
Beep 1
ElseIF @Getfocus(KeyDel&)
@WritePrivateProfileStruct(@Addr(Section$),@Addr(Key$),0,0,@Addr(File$))
Beep 1
ElseIF @Getfocus(FileLöschen&)
Assign #1,File$
Erase #1
Beep 1
ElseIF @Getfocus(Flush&)
@WritePrivateProfileStruct(0,0,0,0,@Addr(File$))
Beep 1
endif
Wend
|
|
|
| |
|
|