スプレッドシートファイルへの複数書き込み操作が必要な場合は、ディスクストリーミングを使用します。ディスクストリーミングを使用することで、関数がファイルの開閉時にオペレーティングシステムと対話する回数が減り、メモリリソースを節約できます。データをスプレッドシート文字列にフォーマットし、その文字列をファイルに書き込み中に、ディスクストリーミングを使用することができます。

使用するオブジェクト

以下のブロックダイアグラムオブジェクトを使用して、データをフォーマットしてファイルにストリームします。

解決方法

以下のブロックダイアグラムを作成して、異なるデータタイプのデータをスプレッドシート文字列にフォーマットし、その文字列をファイルにストリームします。

メモ 1つのデータタイプのデータをスプレッドシート文字列にフォーマットするには、「配列からスプレッドシート文字列に変換」関数を使用します。

独自のプログラミング目的に応じて、灰色のセクションをカスタマイズします。

以下のリストには、前のダイアグラムについての重要な情報が記載されています。

典型的なディスクストリーミング操作を作成するには、Whileループの外側に「ファイルを開く/作成/置換」関数と「ファイルを閉じる」関数を配置します。
Whileループを使用することで、VIは反復ごとにファイルを開閉するオーバーヘッドなしで、連続的にデータをフォーマットしてファイルに書き込むことができます。シフトレジスタを使用して、前回の反復から次の反復へ値を渡します。
Whileループの外にある入力パラメータを「文字列にフォーマット」関数の入力1..n入力に配線します。復帰改行定数、タブ定数などのデリミタを、入力データを切り離す入力パラメータとして配線できます。形式指定子を使用して、入力パラメータをスプレッドシート文字列としてフォーマットする形式文字列入力を指定します。
メモ 文字列にフォーマット」関数および「テキストファイルに書き込む」関数の代わりに「ファイルにフォーマット」関数を使用して、データをテキストにフォーマットし、そのテキストをファイルに書き込むこともできます。
「テキストファイルに書き込む」関数は、スプレッドシート文字列をファイルに書き込みます。

シフトレジスタを使用することで、データをバッファし、ディスクストリーミングのパフォーマンスを向上することができます。最初に、シフトレジスタをデータのバッファで初期化します。次に、バッファへデータを書き込みます。バッファが一杯になると、バッファをディスクに書き込みます。

サンプル

ストリーミングデータをスプレッドシートファイルに書き込むサンプルについては、labview\examples\File IO\Spreadsheet\Tab-Delimited DataディレクトリのTab-Delimited Dataプロジェクトを参照してください。このサンプルでは、1つのデータタイプのデータをスプレッドシート文字列に変換してその文字列をファイルに書き込む「配列からスプレッドシート文字列に変換」関数を使用しています。

ストリーミングデータをスプレッドシートファイルにストリームする場合にデータバッファのサンプルについては、labview\examples\File IO\Spreadsheet\Tab-Delimited Dataディレクトリの「タブ区切りテキストファイルへバッファ付きでストリーム」VIを参照してください。