Blob
最后更新于
A Blob object represents a chunk of binary data. Scripting languages like VBScript and JScript have no built-in support for binary data - this object can be used to allocate a chunk of memory and manipulate it in a similar way to low-level languages like C. You can use Blob objects in conjunction with the File object to read or write binary data from or to disk files.
Blob objects are convertible to and from two types of ActiveX arrays - a SAFEARRAY of type VT_UI1 (known as an array) and a SAFEARRAY of type VT_VARIANT, with each variant holding a VT_UI1 (known as a VB array). You can initialize a Blob with either of these two types of array (either when creating it via the DOpusFactory.Blob method or with the Blob.CopyFrom method), and you can also convert a Blob back to an array with the ToArray and ToVBArray methods. Support for these array types is dependent on the scripting language.
You can read and write individual bytes within the Blob by indexing the byte offset starting from 0. For example, my_blob(5) = 128 would set the value of the sixth byte in the blob to 128.
Property Name | Return Type | Description |
---|---|---|
size
object:FileSize
Returns a FileSize object representing the size of this Blob in bytes.
Method Name
Arguments
Return Type
Description
Compare
<Blob:source> <int:to> <int:from> <int:size>
int
Compares the contents of this Blob against another Blob (or array). By default the entire contents of the two blobs are compared. The optional parameters that let you configure the operation are:
to - specifies the byte offset within this Blob to compare against. Defaults to 0. from - specifies the byte offset within the source Blob to compare with. Defaults to 0. size - specifies the number of bytes to compare. Defaults to the full size of the source Blob.
The return value is 0 if the two blobs are the same. A value of -1 indicates this blob is less than the other blob, and 1 indicates this blob is greater than the other blob.
CopyFrom
<Blob:source> <int:to> <int:from> <int:size>
or <string> <type>
none
Copies data from the source Blob (or array) into this Blob. By default the entire contents of the source Blob will be copied over the top of this one. The optional parameters that let you configure the operation are:
to - specifies the byte offset within this Blob to copy to. Defaults to 0. from - specifies the byte offset within the source Blob to copy from. Defaults to 0. size - specifies the number of bytes to copy. Defaults to the full size of the source Blob.
As well as copying from another Blob, you can use this method to initialise a Blob from a string. By default the Blob will be set to the Unicode form of the string; if you pass "utf8" as the second parameter it will initialise the Blob with the UTF8-encoded form of the string.
If this Blob is not currently large enough to contain the copied data it will be resized automatically.
Find
<Blob:search> <int:from> <int:size>
object:FileSize
Searches the contents of this Blob for the data contained in another Blob (or array). By default the entire contents of this Blob are searched. The optional from parameter lets you specify the starting position for the search, and the optional size parameter lets you specify the length of data in this Blob to search through. The return value is -1 if the search data were not found, otherwise the offset from the start of the Blob data is returned.
Free
none
none
Frees the memory associated with this Blob and resets its size to 0.
Init
none
none
Initialises the contents of the Blob (every byte within the blob will be set to 0). Equivalent to Set(0).
Resize
<int:size>
none
Resizes the Blob to the specified number of bytes.
Reverse
none
none
Reverses the contents of the Blob.
Set
<byte:value> <int:to> <int:size>
none
Sets the contents of the Blob to the specified byte value (every byte within the blob will be set to that value). By default the whole Blob will be affected. The option to parameter lets you specify a byte offset to start at, and the optional size parameter lets you control the number of bytes affected.
ToArray
<int:from> <int:size>
SAFEARRAY of VT_UI1
Converts the contents of this Blob to a SAFEARRAY of type VT_UI1. By default the entire contents of the Blob will be copied to the array. The optional parameters that let you configure the operation are: from - specifies the byte offset within the source Blob to copy from. Defaults to 0. size - specifies the number of bytes to copy. Defaults to the full size of the source Blob.
ToVBArray
<int:from> <int:size>
SAFEARRAY of VT_VARIANT
Converts the contents of this Blob to a SAFEARRAY of type VT_VARIANT. Each variant in the array contains a VT_UI1. By default the entire contents of the Blob will be copied to the array. The optional parameters that let you configure the operation are:
from - specifies the byte offset within the source Blob to copy from. Defaults to 0. size - specifies the number of bytes to copy. Defaults to the full size of the source Blob.