A String is a sequence of bytes. This is the same as strings in Ruby 1.8. The issue of character encoding is ignored by this class.
require 'bindata' data = "abcdefghij" obj = BinData::String.new(:read_length => 5) obj.read(data) obj #=> "abcde" obj = BinData::String.new(:length => 6) obj.read(data) obj #=> "abcdef" obj.assign("abcdefghij") obj #=> "abcdef" obj.assign("abcd") obj #=> "abcd\000\000" obj = BinData::String.new(:length => 6, :trim_padding => true) obj.assign("abcd") obj #=> "abcd" obj.to_binary_s #=> "abcd\000\000" obj = BinData::String.new(:length => 6, :pad_byte => 'A') obj.assign("abcd") obj #=> "abcdAA" obj.to_binary_s #=> "abcdAA"
String objects accept all the params that BinData::BasePrimitive does, as well as the following:
:read_length |
The length in bytes to use when reading a value. |
:length |
The fixed length of the string. If a shorter string is set, it will be padded to this length. |
:pad_byte |
The byte to use when padding a string to a set length. Valid values are Integers and Strings of length 1. “0” is the default. |
:pad_front |
Signifies that the padding occurs at the front of the string rather than the end. Default is false. |
:trim_padding |
Boolean, default false. If set, value will return the value with all pad_bytes trimmed from the end of the string. The value will not be trimmed when writing. |
Generated with the Darkfish Rdoc Generator 2.