LabVIEWForum.de
Limit in File Size bei binary Files? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Limit in File Size bei binary Files? (/Thread-Limit-in-File-Size-bei-binary-Files)



Limit in File Size bei binary Files? - Stoney_83 - 25.03.2011 15:02

Hallo zusammen,

ich stehe gerade vor einem Problem bei der Benutzung von "Write to Binary File und "Read from Binary File". Ist es möglich, dass Binary Files ab einer gewissen Datenmenge die Struktur ändern oder Daten anders geschrieben werden?

Der Hintergrund der VIs ist das Auslesen von Daten ab einer DAQ und Abspeichern in einem Binary File zur späteren Verarbeitung. Die Daten sollen so abgespeichert werden, dass zuerst ein 512 byte Header steht und danach die Daten in Blöcke von von X mal Y Samples (2D Array) verpackt werden. Danach werden Z dieser Blöcke hintereinander geschrieben.

Um die Datenverarbeitung zu testen habe ich ein VI erstellt, dass diese Datenform liefern soll. Der control "Array" stellt das X mal Y grosse Array von I 16 Daten dar und mit #of arrays wird festgelegt, wieviele dieser Blöcke hintereinander ins File geschrieben werden sollen.

Danach wird das Binary File mit dem file_read_Integer.vi geöffnet und die Blöcke bearbeitet. Die Verarbeitung ist hier irrelevant. Falls ich nun eine Datenmenge von grösser als 2048X1024X512 schreibe (2048x1024 I-16 array, 512 mal hintereinandergeschrieben) erhalte ich beim öffnen den Fehlercode 116 (Unflatten or byte stream read operation failed due to corrupt, unexpected, or truncated data) im "Read from Binary File". Bei kleineren Datenmengen funktioniert der Ablauf einwandfrei und ausser der Datenmenge habe ich nichts geändert.

Der Graph im file_write_integer diente zur Kontrolle, dass der File Pointer nicht "überläuft".

Ich sehe im Moment keine andere Erklärung als die Dateigrösse (über 2 GB) für dieses Problem, bin aber für jeden Hinweis dankbar.

Liebe Grüsse
Fred


RE: Limit in File Size bei binary Files? - rolfk - 26.03.2011 22:40

(25.03.2011 15:02 )Stoney_83 schrieb:  Der Graph im file_write_integer diente zur Kontrolle, dass der File Pointer nicht "überläuft".

Ich sehe im Moment keine andere Erklärung als die Dateigrösse (über 2 GB) für dieses Problem, bin aber für jeden Hinweis dankbar.

Ich denke Du hast einen Bug gefunden. Die gute Nachricht ist, dass das scheinbar in LabVIEW 2010 gefixt ist, da läuft es nämlich ohne Probleme.

Ich glaube dass die File IO Funktionen selber schon funktionieren sollten öberhalb von 2GB aber irgendwas in der Binary from Disk scheint da noch nicht gut zu gehen. Die mögliche Alternative ausser zu upgraden, wäre eventuel um die Daten selber als Bytestream, String einzulesen und dann in LabVIEW explizit zu Flatten. Habe ein Beispiel als 2010 Snippet angehängt wie dies aussehen könnte.

[attachment=32966]


RE: Limit in File Size bei binary Files? - Stoney_83 - 28.03.2011 07:53

Herzlichen Dank für die rasche Antwort!

Ich habe das mit dem Flatten probiert und das würde einwandfrei laufen. Wir werden aber im Labor in zwei Wochen sowieso die Labview software updaten. Ich werde mal bis dann abwarten..

Nochmals Danke und schöne Woche

Fred