contents   index   previous   next



Buffer putValue()

syntax:

buffer.putValue(value[, valueSize[, valueType]])

where:

value - the value, a number, to be put into the buffer at the position indicated by the cursor property.

 

valueSize - a positive number describing the number of bytes to be used and defaults to 1. The following are acceptable values: 1,2,3,4,8, and 10

 

valueType - One of the following types: "signed", "unsigned", or "float". The default type is: "signed."

 

return:

void

 

The value is put into buffer at the current cursor position, and the cursor value is automatically incremented by the size of the value to reflect this addition.

 

description:

This method puts the specified value into a buffer. The value must be a number. The parameter valueSize or both valueSize and valueType may be passed as additional parameters. The parameter valueSize is a positive number describing the number of bytes to be used and defaults to 1. Acceptable values for valueSize are 1, 2, 3, 4, 8, and 10, providing that it does not conflict with the optional valueType flag. (See listing below.)

 

The parameter valueType must be one of the following: "signed", "unsigned", or "float". It defaults to "signed." The valueType parameter describes the type of data to be read. Combined with valueSize, any type of data can be put. The following list describes the acceptable combinations of valueSize and valueType:

 

valueSize  valueType

1          signed, unsigned

2          signed, unsigned

3          signed, unsigned

4          signed, unsigned, float

8          float

10         float  (Not supported on every system)

 

Any other combination will cause an error. The value is put into buffer at the current cursor position, and the cursor value is automatically incremented by the size of the value to reflect this addition.

 

see:

Buffer getValue(), Buffer[] Array

 

example:

/*

To explicitly put a value at a specific location

while preserving the cursor location,

do something similar to the following.

*/

 

var oldCursor = foo.cursor;

   // Save the old cursor location

foo.cursor = 20;

   // Set to new location

foo.putValue(goo);

   // Put goo at offset 20

foo.cursor = oldCursor

// Restore cursor location

 

/*.

The value is put into the buffer with byte-ordering

according to the current setting of the .bigEndian

flag. Note that when putting float values as a

smaller size, such as 4, some significant figures

are lost. A value such as "1.4" will actually be

converted to something to the effect

of "1.39999974". This is sufficiently

insignificant to ignore, but note

that the following does not hold true.

.*/

 

foo.putValue(1.4,4,"float");

foo.cursor -= 4;

if( foo.getValue(4,"float") != 1.4 )

   // This is not necessarily true due

   // to significant figure loss.

 

/*.

This situation can be prevented by using 8 or 10

as a valueSize instead of 4. A valueSize of 4

may still be used for floating point values,

but be aware that some loss of significant figures

may occur (though it may not be enough

to affect most calculations).

.*/

 


Buffer subBuffer()