Core Function PTRWrite

From Sputnik Wiki
Jump to: navigation, search
PTRWrite( <ptr>, <type>, <offset>, <value> )

Contents

Description

Write data to a memory pointer optionally starting from a given index.

Parameters

ptr

The pointer to use.

type

The type of data to read

[TYPE]		[WHAT IT IS]
r		Raw bytes
c		ASCII char
C		UNICODE char
b		unsigned byte
B		signed byte
s		signed int16
i		signed int32
l		signed int64
S		unsigned int16
I		unsigned int32
L		unsigned int64
f		float
d		double
t		pointer

offset

Offset to add to the pointer.

value

The value to write to the pointer at the given offset.

Return Value

Success: Returns 1.

Failure: Returns 0.

Remarks

None.

Example

$PTR = Alloc(300);
 
PTRWrite($PTR, "f", 0, 133.77);
PTRWrite($PTR, "l", 4, 777);
PTRWrite($PTR, "i", 12, 1221);
 
Println( PTRRead($PTR, "f", 0) );
Println( PTRRead($PTR, "l", 4) );
Println( PTRRead($PTR, "i", 12) );
 
Free($PTR);

This uses a string

$PTR = Alloc(300);
 
PTRWrite($PTR, "f", 0, 133.77);
PTRWrite($PTR, "l", 4, 777);
PTRWrite($PTR, "i", 8, StringToPTR(0, "Hello World"));
PTRWrite($PTR, "i", 12, 1221);
 
Println( PTRRead($PTR, "f", 0) );
Println( PTRRead($PTR, "l", 4) );
Println( PTRToString(0, PTRRead($PTR, "i", 8)) );
Println( PTRRead($PTR, "i", 12) );
 
Free($PTR);

Example of writing raw bytes to the pointer

$Value = "Hello World!";
$PTR = Alloc(StrLen($Value) + 1);
$Bytes = Pack("A*", "Hello World!");
PTRWrite($PTR, "r", 0, $Bytes);
$String = PTRToString(0, $PTR);
echo $String;
Free($PTR);
# Prints
# Hello World!
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox