预分配的读取二进制文件函数
- 更新时间2026-07-27
- 阅读时长7分钟
从文件读取二进制数据,并将数据放置在已分配的数组中,不另行分配数据的副本空间。与读取二进制文件函数不同,该函数避免了运行时的内存分配操作。
函数的运行速度取决于预分配的数组。
连线板显示该多态函数的默认数据类型。

输入/输出
引用句柄输入
—
引用句柄输入是要读取文件的引用句柄。
数据输入
—
数据输入指定要放置数据的数组。该函数读取数组中存放的所有元素。关于该函数支持的数组和数据类型,请参考支持表。
字节顺序(0:big-endian, network order)
—
字节顺序设置结果数据的endian形式。字节顺序,或endian形式,表明在内存中整数是否按照从最高有效字节到最低有效字节的形式表示,或者相反。函数必须按照数据写入的字节顺序读取数据。 备注 该函数要求字节顺序参数与LabVIEW所在的计算机的字节顺序一致。如果计算机是big endian,请选择native, host order或big-endian, network order>endian形式。如计算机为little endian,可选择native, host order或little-endian endian形式。
错误输入
—
错误输入表明该节点运行前发生的错误条件。该输入将提供标准错误输入功能。
引用句柄输出
—
引用句柄输出是函数读取的文件的引用句柄。可将该输出连接至其他文件函数。
数据输出
—
数据输出中是从文件中读取的数据。输出不会为了只包括有效数据而调整大小。如数据输入在填满之前LabVIEW就达到文件末尾(EOF),数组中将会包含部分无效元素。读取元素的数量输出表示数据输出中有效数据的确切总量。如数据输入数组被填满之前LabVIEW没有到达文件末尾,LabVIEW将把指针停留在读取结束的位置。下次读取从上次读取停止的位置开始。
读取元素的数量
—
读取元素的数量返回数据输入数组中被文件数据替换的元素的总量。
错误输出
—
错误输出包含错误信息。该输出提供标准错误输出功能。 |
下列程序框图显示了该函数如何与预分配数组配合使用。预分配的读取二进制文件函数运行时,LabVIEW将把从文件读取的数据放入相同的数组。
预分配的读取二进制文件的支持情况
该函数对不同类型数组的支持不尽相同:
完全支持。函数不要求新的分配任务,比读取二进制文件函数更快。
支持。函数要求新的分配任务的数据拷贝,比读取二进制文件函数更慢。
函数不接受。
下表显示了该函数对各种数组或数组块数据输入的支持情况。
| 数据类型 | 数组 | 连续的数组块 | 非连续的数组块1 |
|---|---|---|---|
| 整型 | ![]() | ![]() | ![]() |
| 单精度浮点数,浮点数值 | ![]() | ![]() | ![]() |
| 双精度浮点数 | ![]() | ![]() | ![]() |
| 扩展精度浮点数² | ![]() | ![]() | ![]() |
| 单精度浮点复数 | ![]() | ![]() | ![]() |
| 双精度浮点复数 | ![]() | ![]() | ![]() |
| 扩展精度浮点复数² | ![]() | ![]() | ![]() |
| 定点数² | ![]() | ![]() | ![]() |
| 布尔 | ![]() | ![]() | ![]() |
| 字符串 | ![]() | ![]() | ![]() |
| 所有其他类型 | ![]() | ![]() | ![]() |
- LabVIEW必须为非连续的数组块创建内存拷贝。如连接非连续的数组块至数据输入,预分配的读取二进制文件函数并不比读取二进制文件函数更快。
- 预分配的读取二进制文件函数可处理扩展精度、复数扩展精度和定点数据。但是,预分配的读取二进制文件函数和读取二进制文件函数一样为这些数据类型分配新的内存拷贝,因为无法在现有的分配空间中容纳这些数据类型。
该函数也支持上述类型在表格中使用。
引用句柄输入
—
数据输入
—
字节顺序(0:big-endian, network order)
—
错误输入
—
引用句柄输出
—
数据输出
—
读取元素的数量
—
错误输出
—