预分配的读取二进制文件函数
- 更新时间2025-07-30
- 阅读时长7分钟
Reads binary data from a file and places the data into an array that you have already allocated without incurring a copy of the data. Unlike the Read from Binary File function, this function avoids run-time memory allocations.
函数的运行速度取决于预分配的数组。
连线板显示该多态函数的默认数据类型。

输入/输出
引用句柄输入
—
引用句柄输入是要读取文件的引用句柄。
数据输入
—
数据输入指定要放置数据的数组。该函数读取数组中存放的所有元素。关于该函数支持的数组和数据类型,请参考支持表。
字节顺序(0:big-endian, network order)
—
字节顺序设置结果数据的endian形式。字节顺序,或endian形式,表明在内存中整数是否按照从最高有效字节到最低有效字节的形式表示,或者相反。函数必须按照数据写入的字节顺序读取数据。 注: 该函数要求字节顺序参数与LabVIEW所在的计算机的字节顺序一致。如果计算机是大端格式,请选择 native, host order 或 big-endian, network order> 端格式。如果计算机是小字节形式,请选择 native, host order 或 little-endian 字节形式。
错误输入
—
错误输入表明该节点运行前发生的错误条件。该输入将提供标准错误输入功能。
引用句柄输出
—
引用句柄输出是函数读取的文件的引用句柄。可将该输出连接至其他文件函数。
数据输出
—
数据输出中是从文件中读取的数据。输出不会为了只包括有效数据而调整大小。如数据输入在填满之前LabVIEW就达到文件末尾(EOF),数组中将会包含部分无效元素。读取元素的数量输出表示数据输出中有效数据的确切总量。如数据输入数组被填满之前LabVIEW没有到达文件末尾,LabVIEW将把指针停留在读取结束的位置。下次读取从上次读取停止的位置开始。
读取元素的数量
—
读取元素的数量返回数据输入数组中被文件数据替换的元素的总量。
错误输出
—
错误输出包含错误信息。该输出提供标准错误输出功能。 |
下列程序框图显示了该函数如何与预分配数组配合使用。预分配的读取二进制文件函数运行时,LabVIEW将把从文件读取的数据放入相同的数组。

预分配的读取二进制文件的支持情况
该函数对不同类型数组的支持不尽相同:
完全支持。函数不要求新的分配任务,比读取二进制文件函数更快。
支持函数要求新的分配任务的数据拷贝,比读取二进制文件函数更慢。
功能不接受。
下表显示了该函数对各种数组或数组块数据输入的支持情况。
| 数据类型 | 数组 | 连续的数组块 | 非连续的数组块1 |
|---|---|---|---|
| 整型 | ![]() | ![]() | ![]() |
| 单精度浮点数,浮点数值 | ![]() | ![]() | ![]() |
| 双精度浮点数 | ![]() | ![]() | ![]() |
| 扩展精度浮点数值² | ![]() | ![]() | ![]() |
| 单精度浮点复数 | ![]() | ![]() | ![]() |
| 双精度浮点复数 | ![]() | ![]() | ![]() |
| 复杂的扩展精度浮点数值² | ![]() | ![]() | ![]() |
| 定点数值² | ![]() | ![]() | ![]() |
| 布尔 | ![]() | ![]() | ![]() |
| 字符串 | ![]() | ![]() | ![]() |
| 所有其他类型 | ![]() | ![]() | ![]() |
- LabVIEW必须为非连续的数组块创建内存拷贝。如连接非连续的数组块至数据输入,预分配的读取二进制文件函数并不比读取二进制文件函数更快。
- 预分配的读取二进制文件函数可处理扩展精度、复数扩展精度和定点数据。不过,该函数会为这些数据类型的新副本分配内存,就像从二进制文件读取函数一样,因为它无法将数据放入现有分配中。
该函数也支持上述类型在表格中使用。
引用句柄输入
—
数据输入
—
字节顺序(0:big-endian, network order)
—
错误输入
—
引用句柄输出
—
数据输出
—
读取元素的数量
—
错误输出
—