来源:https://www.fun123.cn/reference/iot/bytearray.html
功能概述 字节数组扩展允许对存储的数据进行顺序和随机访问。随机访问的索引基址(第一个元素的索引)可以使用Base属性设置。可能的值为1(App Inventor中常用)或0(Java或C中常用)。 组件以空数组开始,这意味着它不包含任何元素。可以使用以下方法添加元素: - AddByte(无符号8位数字[0..255])
- AddWord(无符号16位数字[0..65,536])
- AddDWord(无符号32位数字[0..4,294,967,296])
对于AddWord和AddDWord,MsbFirst属性定义了字节添加到数组的顺序(字节序)。可以使用Append方法将另一个字节数组的内容添加到数组中。 Fill函数用指定数量的指定值元素填充数组。InsertByteAt函数在指定位置插入一个字节,其他元素向后移动一个位置。RemoveByteAt删除指定位置的字节,后续字节向前移动。RemoveBytes删除指定数量的字节。可以使用SetByteAt函数更改一个字节。 Clear函数从字节数组中删除所有元素。 顺序访问使用ReadByte、ReadWord或ReadDWord函数完成。MsbFirst属性定义字节顺序。ReadIndex属性指定接下来将读取的数组中的位置。为了读取特定元素,也可以相应地设置ReadIndex。Available属性返回还可以读取多少字节。 ToString方法将数组内容返回为两位十六进制数字序列。使用ToHex可以将字节、字或双字转换为其十六进制表示。HexPrefix属性指定在十六进制数字前面放置哪个字符串,默认设置为”0x”。 可以使用以下方法插入和读取字符串: - AddUTF8String、AddASCIIString
- ReadUTF8String、ReadASCIIString
- ReadUTF8StringUntil、ReadASCIIStringUntil
UTF-8编码的字符串通常每个字符需要多个字节。GetUTF8ByteSize返回存储UTF-8字符串所需的字节数。 可以使用WriteToFile和ReadFromFile方法将内容写入文件或从文件读取。例如,如果通过UDP(URS AI2 UDP扩展)或MQTT(URS AI2 MQTT扩展)传输图像,它们不能直接插入到图像组件中。这里有助于将数据存储在临时中间文件中,并从那里加载到图像块中。 注意:两个函数都异步执行!文件操作的结束以及文件或数据的可用性由AfterFileWritten和AfterFileRead事件指示。AfterFileWritten返回写入文件的绝对路径。 WriteToFileSync和ReadFromFileSync方法用于同步写入或读取数据。这意味着函数在操作完成且文件或数据可用时返回。对于大量数据,这可能导致较长的响应时间。 可以使用DeleteFile删除(临时)文件。 注意: 文件名(路径)的约定对应于标准文件组件的约定。
使用示例 基本字节数组操作 示例应用界面 积木示例
|