| |
|
|
|
Beschreibung:
GetPrivateProfileStruct list eine Bytefolge aus einer INI aus, errechnet eine Checksumme und vergleicht diese mit der Checksumme, die von WritePrivateProfileStruct an den Eintrag angehängt wurde.
Deklaration:
Def @GetPrivateProfileStruct(5) !KERNEL32,GetPrivateProfileStructA
Parameter:
1.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der die Rubrik des Eintrags enthält. 2.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der den Eintragsnamen enthält. 3.Parameter: Bereichsvariable die die ausgelesenen Daten aufnimmt. 4.Parameter: Größe des Bereichs aus Parameter 3 in Bytes als LongInt. Die Größe des Bereichs muß exakt der Größe des mit WritePrivateProfileStruct geschriebenen Bereichs entsprechen, da sonst keine Daten ausgelesen werden. 5.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der Namen und Pfad der INI enthält.
Rückgabewert:
1 bei Erfolg, 0 bei Misserfolg.
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
|
|
|
| |
|
|