バイナリファイルから読み取る (事前割り当て) 関数



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

1つ上のパレット: 上級ファイルVIおよび関数

インストールパッケージ: ベース開発システム

ファイルからバイナリデータを読み取り、そのデータのコピーを作成することなく事前に割り当て済みの配列に格納します。 この関数は、「バイナリファイルから読み取る」関数とは異なり、ランタイムにメモリ割り当てを行いません。

この関数のパフォーマンスは、事前に割り当てる配列によって異なります。

コネクタペーンには、この多態性関数のデフォルトのデータタイプが表示されます。

詳細  

refnum入力は、読み取るファイルに関連付けられているファイルrefnumです。
データ入力は、データを配置する配列を指定します。 この関数は、配列が持つことができる最大のデータ要素を読み込みます。 この関数がサポートする配列とデータタイプについては、サポート表を参照してください。
バイト順序は、結果として得られるデータのエンディアン形式を設定します。 バイト順序(エンディアン形式)は、整数が最上位のバイトから最下位のバイトへの順序、またはその逆の順序のどちらでメモリ上に配置されるかを示します。 関数は、データが書き込まれたバイト順序でデータを読み取らなければなりません。
メモ  この関数では、バイト順序パラメータと、LabVIEWを実行しているホストコンピュータのネイティブのバイト順序とを一致させる必要があります。 コンピュータがビッグエンディアンの場合は、native, host orderまたはbig-endian, network orderエンディアン形式を選択します。 コンピュータがリトルエンディアンの場合は、native, host orderまたはlittle-endianエンディアン形式を選択します。


0big-endian, network order(デフォルト)―最上位のバイトが最下位のメモリアドレスを占有します。 このエンディアンフォームは、VxWorksなどのPowerPCプラットフォームで使用されます。 その他のプラットフォームでは、このエンディアン形式は書き込まれたデータを読み取る際にも使用されます。
1native, host order―ホストコンピュータのバイト順序形式を使用します。 このエンディアン形式により、読み取り/書き込みの速度が向上します。
2little-endian―最下位のバイトが最下位のメモリアドレスを占有します。 このエンディアン形式は、Windows、macOS、Linuxで使用されます。
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。 この入力は、標準エラー入力として機能します。
refnum出力は、関数が読み取るファイルのrefnumです。 この出力は、他のファイル関数に配線できます。
データ出力には、ファイルから読み取られたデータが含まれます。 この出力は、有効なデータのサイズに合わせてサイズ変更されません。 データ入力配列が一杯になる前にLabVIEWがファイルの最後に到達すると、配列には無効な要素が含まれることになります。 データ出力に入っている有効なデータの数を正確に知るには、読み取られた要素数を使用します。 データ入力配列が一杯になる前にLabVIEWがファイルの最後に到達しなかった場合は、次の読み取りが前回読み取り終了時の位置から開始されるように、ファイルポインタの位置がそのまま保持されます。
読み取られた要素数は、ファイルのデータにより置き換えられたデータ入力配列内の要素数の合計を返します。
エラー出力には、エラー情報が含まれます。 この出力は、標準エラー出力として機能します。

バイナリファイルから読み取る (事前割り当て)の詳細

以下のブロックダイアグラムは、この関数による事前に割り当てられた配列の処理の例を示しています。 「バイナリファイルから読み取る (事前割り当て)」関数が実行されるたびに、ファイルから読み取られたデータは同じ配列に配置されます。



バイナリファイルから読み取る (事前割り当て) でのサポート

この関数は、ファイルのデータを配置するために配線した配列に応じて、以下のように異なるレベルのサポートを提供します。

  完全サポート。 関数は新規の割り当てを必要としないため、この関数は「バイナリファイルから読み取る」関数よりもおそらく速くなります。

  サポートあり。 関数は新規の割り当てとコピーを必要とするため、この関数は「バイナリファイルから読み取る」関数よりもおそらく遅くなります。

  関数により受け入れ不可。

以下の表は、データ入力に特定の配列、または特定のデータタイプを含む配列スライスを配線した場合のサポートレベルを表しています。

データタイプ配列隣接する配列スライス隣接しない配列スライス1
整数
単精度浮動小数点数
倍精度浮動小数点数
拡張精度浮動小数点数2
複素単精度浮動小数点数
複素倍精度浮動小数点数
複素拡張精度浮動小数点数2
固定小数点数2
ブール
文字列
その他のすべてのデータタイプ
メモ: 1. LabVIEWは隣接しない配列スライスのメモリコピーを作成する必要があります。 このため、隣接しない配列スライスをデータ入力に配線した場合、「バイナリファイルから読み取る (事前割り当て)」関数は「バイナリファイルから読み取る」関数より速くはなりません。
2. 「バイナリファイルから読み取る (事前割り当て)」関数は、拡張精度、拡張精度複素数、および固定小数点データを受け入れます。 しかし、データを既存の割り当てに配置できないため、これらのデータタイプの場合は「バイナリファイルから読み取る」関数のときと同様、新規コピー用のメモリを割り当てます。

また、この関数は、表中の各データタイプを、配列に格納されていないスカラ値として完全にサポートします。



この記事は役に立ちましたか。

役に立たなかった