Code: Alles auswählen
var_4_byte.l = Random(1000) ; long variablen sidn 4 byte groß
*speicher = @var_4_byte ; adresse in var *speicher schreiben
byte1.b = PeekB(*speicher) ; byte 1 auslesen
byte2.b = PeekB(*speicher+1) ; byte 2 auslesen
byte3.b = PeekB(*speicher+2) ; byte 3 auslesen
byte4.b = PeekB(*speicher+3) ; byte 4 auslesen
Debug byte1
Debug byte2
Debug byte3
Debug byte4
edit: noch ein wenig erklärung:
variablen haben einerseitz einen wert
aber diese variable muss ja auch irgendwo gespeichert sein.
an diese adresse kommt man mit
wenn man sich nun die adresse der variable holt steht der wert an dieser adresse im speicher, udn zwar zusammenhängend.
wie groß der bereich ist hängt om typ ab.
entweder man nimmt variablen von einem bestimmten typ (zb 32bit long => 4byte, doubble => 8 byte etc) oder man holt sich selber einen speicherbereich
, den man aber auch selbst wieder freigeben muss.
string steehn genau so im speicher.
"nromal" initialisierte strings haben eine dynamische länge, abhängend von der kodiereung (zb utf-8 etc) und halt der stringlänge.
ein 8 zeichen ansi-string belegt 9 byte (8*1byte pro zeichen + 0-byte)
ein 8 zeichen unicodestring belegt 18 byte (8*2byte pro zeichen + 2*0-byte) udn utf hängt von den zeichen an sich ab...
zurück zum zusammenhängenden speicherbereich:
da die adresse den "startpunkt" im speicher angibt, kann man einfach +1, +2, +3, +n zur adresse aufrechnen um die nächsten bytes auszulesen.