バイナリファイルから読み取る 関数



LabVIEW 2018ヘルプ


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

ダウンロード (Windowsのみ)


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

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

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

ファイルからバイナリデータを読み取り、そのデータをデータに返します。 データが読み取られる方法は、指定されたファイルの形式により異なります。 この関数は、LLBのファイルに作用しません。

コピーを発生させずにバイナリデータを読み込んで、事前に割り当てた配列に配置する方法については、「バイナリファイルから読み取る (事前割り当て)」関数を参照してください。

詳細  サンプル

データタイプは、関数がバイナリファイルからデータを読み取りに使用するデータタイプを設定します。 関数は、現在のファイル位置から始まるデータを、データタイプカウント分のインスタンスとして解釈します。 タイプが配列、文字列、配列または文字列を含むクラスタである場合、関数はそのデータタイプの各インスタンスにサイズ情報が含まれると仮定します。 サイズ情報を持たないインスタンスがある場合、関数はデータを正しく解釈できません。 LabVIEWは、データのタイプが一致しないと判断すると、データを指定されたタイプのデフォルトに設定して、エラーを返します。
プロンプトは、ファイルダイアログボックスのファイルとディレクトリ、または、フォルダリストの下に表示されるメッセージです。
ファイルは、refnumまたは絶対ファイルパスにできます。 パスの場合、この関数はそのパスで指定したファイルを開きます。 デフォルトでは、ファイルダイアログボックスを表示してファイルを選択するように指示します。

空または相対パスを指定した場合やファイルが存在しない場合は、この関数はエラーを返します。
カウントは、読み取るデータ要素数です。 データ要素はデータタイプのバイトまたはインスタンスとなります。 関数は、データカウントのデータ要素を返すか、またはファイルの最後に到達した場合、読み取りを終了したすべてのデータ要素とEOFエラーを返します。 デフォルトでは、この関数は1つのデータ要素を返します。 カウント–1の場合、関数は、現在のファイル位置から開始してファイル全体を読み取ります。 カウント–1未満の場合、この関数はエラーを返します。

LabVIEWでは配列の配列を作成できないため、カウントにデータを配線し、指定されたデータタイプが配列の場合、関数は自動的に配列のクラスタまたはクラスタ配列を返します。

32ビット整数以外のデータタイプのファイルサイズをカウントに配線すると、LabVIEWはデータタイプを32ビット整数に強制変換します。 これはVIが期待するデータ量を読み取らない可能性があることを意味します。 –1カウントに配線し、読み取るファイルサイズが32ビット整数で表すには大きすぎる場合、LabVIEWはエラーを返します。

カウンタに整数のクラスタを配線すると、関数は、各クラスタにつき1次元ずつの多次元配列を返します。 たとえば、カウントに1、2、および3という値を含むクラスタを配線すると、関数は、最初の次元に1つの要素、2つ目の次元に2つの要素、および3つ目の次元に3つの要素を含む3次元の配列を返します。
バイト順序は、結果として得られるデータのエンディアン形式を設定します。 バイト順序(エンディアン形式)は、整数が最上位のバイトから最下位のバイトへの順序、またはその逆の順序のどちらでメモリ上に配置されるかを示します。 関数は、データが書き込まれたバイト順序でデータを読み取らなければなりません。

0big-endian, network order(デフォルト)―最上位のバイトが最下位のメモリアドレスを占有します。 このエンディアンフォームは、VxWorksなどのPowerPCプラットフォームで使用されます。 その他のプラットフォームでは、このエンディアン形式は書き込まれたデータを読み取る際にも使用されます。
1native, host order―ホストコンピュータのバイト順序形式を使用します。 このエンディアン形式により、読み取り/書き込みの速度が向上します。
2little-endian―最下位のバイトが最下位のメモリアドレスを占有します。 このエンディアン形式は、Windows、macOS、Linuxで使用されます。
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。 この入力は、標準エラー入力として機能します。
refnum出力は、関数が読み取るファイルのrefnumです。 ファイルの処理によって、この出力は他のファイル関数に配線できます。 デフォルトは、ファイルがファイルパスによって参照されるか、ファイルダイアログボックスから選択される場合、ファイルを閉じます。 ファイルがrefnumの場合、またはrefnum出力を他の関数に配線した場合、ファイルを閉じるまで、LabVIEWはファイルが使用中であるとみなします。
データには、指定したデータタイプでファイルから読み取られたデータが含まれます。 読み取り中のデータタイプとカウントの設定方法により、文字列、配列、配列のクラスタ、またはクラスタの配列で構成されます。
キャンセルされたは、ファイルダイアログボックスをキャンセルするとTRUEになります。 それ以外は、関数がエラーを返した場合でもキャンセルされたがFALSEになります。
エラー出力には、エラー情報が含まれます。 この出力は、標準エラー出力として機能します。

バイナリファイルから読み取るの詳細

アクセスを拒否」関数を使用して、ファイルの読み取り中に他のユーザがファイルを変更できないようにします。 ランダムアクセスを行う必要がある場合は「ファイル位置を設定」関数を使用します。

この関数は読み取り専用のファイルを開きます。 この関数のrefnum出力を書き込み関数のファイル入力に配線した場合、LabVIEWは許可エラーを返します。 「ファイルを開く/作成/置換」関数を使用して、デフォルトの読み取り/書き込みアクセスでファイルを開き、読み取りおよび書き込み関数にRefnumを配線します。

サンプル

バイナリファイルから読み取る関数の使用サンプルは、以下のVIで参照できます。

  • labview\examples\File IO\Datalog\Datalog File.lvproj
  • labview\examples\File IO\Spreadsheet\Tab-Delimited Data\Tab-Delimited Data.lvproj
  • labview\examples\File IO\Binary\Simple Binary\Simple Binary File.lvproj
  • Endian Considerations with Binary Files VI: labview\examples\File IO\Binary\Endian Considerations


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

役に立たなかった