Difference between revisions of "RawData"
Jump to navigation
Jump to search
(+ Examples) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
The <c>RawData</c> class in [[Mini Micro]] represents a buffer of raw bytes. Interpretation of these bytes is entirely up to the programmer. | The <c>RawData</c> class in [[Mini Micro]] represents a buffer of raw bytes. Interpretation of these bytes is entirely up to the programmer. | ||
+ | |||
+ | See also: [[file.loadRaw]], [[file.saveRaw]] | ||
=== Properties === | === Properties === | ||
Line 54: | Line 56: | ||
| <c>[[RawData.utf8|utf8]](''self, offset=0, bytes=-1'')</c> || get a string of ASCII or UTF-8 text | | <c>[[RawData.utf8|utf8]](''self, offset=0, bytes=-1'')</c> || get a string of ASCII or UTF-8 text | ||
|- | |- | ||
− | | <c>[[RawData.setUtf8|setUtf8]](''self, offset=0, value=""'')</c> || set a string as UTF-8 | + | | <c>[[RawData.setUtf8|setUtf8]](''self, offset=0, value=""'')</c> || set a string as UTF-8; return number of bytes written |
|} | |} | ||
+ | |||
+ | ==== Notes ==== | ||
+ | |||
+ | The getter and setter methods accept <c>offset</c> argument which, as with [[string]] and [[list]] indexing, may be <c>0 .. (len-1)</c> or <c>-len .. -1</c> where the negative indexes mean offset from the end of data. | ||
+ | |||
+ | If offset (positive or negative) is out of range, an <c>IndexError</c> is raised. Same error is raised if the span of read or written bytes go beyond the data boundaries, with the exception of <c>.setUtf8</c> that writes as much of its string value as possible and drops the rest. | ||
+ | |||
+ | === Examples === | ||
+ | |||
+ | <ms> | ||
+ | r = new RawData // Create new RawData of zero length | ||
+ | |||
+ | r.resize 100 // resize it before writing and reading data | ||
+ | |||
+ | r.setByte 42, 200 | ||
+ | |||
+ | print r.sbyte(42) // prints: -56 | ||
+ | </ms> |
Revision as of 19:17, 15 April 2024
The RawData
class in Mini Micro represents a buffer of raw bytes. Interpretation of these bytes is entirely up to the programmer.
See also: file.loadRaw, file.saveRaw
Contents
Properties
Property Name | Type | Default Value | Meaning |
---|---|---|---|
littleEndian |
number (boolean) | true | whether multi-byte values are stored with least significant byte first |
Methods
Method | Description |
---|---|
len |
returns the length of the raw data buffer, in bytes |
resize(bytes=32) |
change the size of the raw data buffer |
byte(self, offset=0) |
get one unsigned byte of data |
setByte(self, offset=0, value=0) |
set one unsigned byte value |
sbyte(self, offset=0) |
get one signed byte of data |
setSbyte(self, offset=0, value=0) |
set one signed byte value |
ushort(self, offset=0) |
get an unsigned 16-bit integer value |
setUshort(self, offset=0, value=0) |
set an unsigned 16-bit integer value |
short(self, offset=0) |
get a signed 16-bit integer value |
setShort(self, offset=0, value=0) |
set a signed 16-bit integer value |
uint(self, offset=0) |
get an unsigned 32-bit integer value |
setUint(self, offset=0, value=0) |
set an unsigned 32-bit integer value |
int(self, offset=0) |
get a signed 32-bit integer value |
setInt(self, offset=0, value=0) |
set a signed 32-bit integer value |
float(self, offset=0) |
get a 32-bit floating-point value |
setFloat(self, offset=0, value=0) |
set a 32-bit floating-point value |
double(self, offset=0) |
get a 64-bit floating-point value |
setDouble(self, offset=0, value=0) |
set a 64-bit floating-point value |
utf8(self, offset=0, bytes=-1) |
get a string of ASCII or UTF-8 text |
setUtf8(self, offset=0, value="") |
set a string as UTF-8; return number of bytes written |
Notes
The getter and setter methods accept offset
argument which, as with string and list indexing, may be 0 .. (len-1)
or -len .. -1
where the negative indexes mean offset from the end of data.
If offset (positive or negative) is out of range, an IndexError
is raised. Same error is raised if the span of read or written bytes go beyond the data boundaries, with the exception of .setUtf8
that writes as much of its string value as possible and drops the rest.
Examples
r = new RawData // Create new RawData of zero length
r.resize 100 // resize it before writing and reading data
r.setByte 42, 200
print r.sbyte(42) // prints: -56