2.kleine Spielerei mit StructureUnion und Structure löschen
Verfasst: 30.04.2008 21:44
Hin und wieder steht man vor dem Problem den Inhalt einer StructurVariablen zu löschen.
Hier ein paar Ideen
Hier ein paar Ideen
Code: Alles auswählen
;1. Beispiel: Structur mit Zahlen löschen
Structure zahl
a.l
b.l
EndStructure
Structure zahlen
StructureUnion
q.zahl
s.s{SizeOf(zahl)}
EndStructureUnion
EndStructure
wert.zahlen
wert\q\a = 123
wert\q\b = 456
Debug wert\q\a
Debug wert\q\b
wert\s = ""
Debug wert\q\a
Debug wert\q\b
Debug "---"
;2. Beispiel: Structur mit ZahlenFelder löschen
Structure zahlF
a.l
b.l[6]
EndStructure
Structure zahlenF
StructureUnion
q.zahlF
s.s{SizeOf(zahlF)}
EndStructureUnion
EndStructure
ww.zahlenF
ww\q\a = 123
ww\q\b[0] = 456
ww\q\b[5] = 654456
Debug ww\q\a
Debug ww\q\b[0]
Debug ww\q\b[5]
ww\s = ""
Debug ww\q\a
Debug ww\q\b[0]
Debug ww\q\b[5]
Debug "---"
;3. Beispiel: Zahlen + FixString
Structure mix
a.l
b.l
d.s{10}
EndStructure
Structure zahlen_string
StructureUnion
q.mix
s.s{SizeOf(mix)}
EndStructureUnion
EndStructure
zs.zahlen_string
zs\q\a = 123
zs\q\b = 456
zs\q\d = "12.04.2008"
Debug zs\q\a
Debug zs\q\b
Debug zs\q\d
zs\s = ""
Debug zs\q\a
Debug zs\q\b
Debug zs\q\d
Debug "---"
;4. bei Structuren die normale Strings beinhalten
; können NUR die Zahlen und FixStrings so gelöscht werden
; und NUR wenn die normalen Strings am Ende stehen !!!
Structure max
a.l
b.l
d.s{10}
e.s ;muß am Ende stehen !!! beinhaltet den Zeiger auf den String
EndStructure
Structure maxi
StructureUnion
q.max
s.s{SizeOf(max)-4} ;hier 4 Bytes abziehen für e.s
EndStructureUnion
EndStructure
zz.maxi
zz\q\a = 123
zz\q\b = 456
zz\q\d = "12.04.2008"
zz\q\e = "Hallo du PBler"
Debug zz\q\a
Debug zz\q\b
Debug zz\q\d
Debug zz\q\e
zz\s = ""
Debug zz\q\a
Debug zz\q\b
Debug zz\q\d
Debug zz\q\e
Debug "---"