PEEK$
<< Click to Display Table of Contents >> Navigation: ThinBASIC Core Language > BuiltIn Functions > Memory handling and pointers > PEEK$ |
Description
Return sequence of bytes at a specified memory location.
Syntax
s = PEEK$(address, count)
s = PEEK$(ASCIIZ, address [, count])
s = PEEK$(STRING, address)
Returns
String
Parameters
Name |
Type |
Optional |
Meaning |
ASCIIZ |
Command |
Yes |
Optional parameter indicating that address is to be considered a pointer to a NULL terminated string. If ASCIIZ is specified, PEEK$ reads successive characters from an ASCIIZ buffer of the specified size, until a terminating $NUL (CHR$(0)) byte is found. Since ASCIIZ strings must contain a terminating $NUL, the maximum length of the returned string is 1 character less than the specified size. |
STRING |
Command |
Yes |
If STRING is specified, address is interpreted as a 32 bit placeholder for a dynamic string. This form allow handling dynamic strings inside UDT or using whatever 32 bit number as dynamic string. |
Address |
Numeric |
No |
A valid 32-bit memory address specifying the location in memory where data retrieval should begin |
Count |
Numeric |
No |
A numeric expression that specifies the number of consecutive bytes to be read from memory starting at address. In case of ASCIIZ, if count is omitted, bytes till the next $NUL char will be automatically determined. |
Remarks
Restrictions
See also
STRPTR, VARPTR, POKE$, POKE, PEEK$, PEEK
Examples
'---Example using STRING for to handle dynamic strings inside UDT structures.
Type MyType
Name As Long
ID As Long
Notes As Long
End Type
Dim MyUSer As MyType
POKE$ String, VARPTR(MyUSer.Name) , "MyName"
POKE$ String, VARPTR(MyUSer.ID) , "MyID"
POKE$ String, VARPTR(MyUSer.Notes), "Whatever string or data or binary sequence are allowed"
MSGBOX 0, _
"[" & PEEK$(String, VARPTR(MyUser.Name) ) & "]" & $crlf & _
"[" & PEEK$(String, VARPTR(MyUser.ID) ) & "]" & $crlf & _
"[" & PEEK$(String, VARPTR(MyUser.Notes)) & "]" & $crlf