LabVIEWForum.de - unflatten from string- zu große Daten Menge

LabVIEWForum.de

Normale Version: unflatten from string- zu große Daten Menge
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,

ich hab ein kleines Problem mit "Unflatten from string" bei größeren Datenmengen.

Ich speichere Messdaten und Informationen über einen Messvorgang in einem Cluster über "Flatten to string".
Bis zu einer gewissen Datenmenge funktioniert "Unflatten from sting" einwandfrei, wird diese überschritten erhalte ich diesen Fehler:


<blockquote>Error 116 occurred at Unflatten From String in MDload.vi->analog.vi

Possible reason(s):

LabVIEW: Unflatten or byte stream read operation failed due to corrupt, unexpected, or truncated data.
</blockquote>


Nun bin ich auf der Suche nach einer Möglichkeit größere Datenmengen zu speichern und wieder einzulesen.
Vielen Dank für Eure Hilfe im Voraus
Matthias
Ich habe es selbst noch nicht probiert, aber man sagt das funktioniert sehr gut mit großen Datenmengen.

http://www.mooregoodideas.com/ReadWriteAnything.htm
Hallo Eugen,

habe die Vis mal ausprobiert, bin aber nicht sofort mit Ihnen zu Recht gekommen.

Habe es jetzt mit "Read und Write to/from binar" gemacht und siehe da es funktioniert.

Bis dann
Matthias
Ja, eigentlich sollte es dasselbe sein.

p.s. ich meine Flatten/Unflatten und Read und Write to/from binar
Hallo zusammen,

auch ich werde aus dem Fehler 116 String deserialisieren nicht schlau.
Denn die Datenstruktur wurde nicht geändert!
Auch wenn ich in dem Cluster ein Array extrem gross lassen werde, geht es, d.h. an der Grösse kann es nicht scheitern. Gibt es da irgendwelchen Zeichen die inkompatibel sind oder Probleme verursachen?

Es muss ja einen Grund geben, es kann doch nicht sein das es mal geht und mal nicht.
Vielleicht wisst ihr/jemand schon mehr dazu.
Bahn Habe gerade noch folgendes getestet und nicht verstanden:

Ich habe zwei Binärdatein, eine die kann geladen werden die andere nicht.
Von Binärdatei die geladen werden kann mit Editor alles markiert und in die die nicht geladen werden kann
eingefügt, gespeichert. Danach sollte doch auch die Datei die anfangs nicht geladen werden konnte, geladen werden können. Das verstehe ich nicht.
Du sprichst in großen Rätseln.
(06.07.2012 05:56 )GT123 schrieb: [ -> ]Hallo zusammen,

auch ich werde aus dem Fehler 116 String deserialisieren nicht schlau.
Denn die Datenstruktur wurde nicht geändert!
Welche Datenstruktur?
(06.07.2012 05:56 )GT123 schrieb: [ -> ]Auch wenn ich in dem Cluster ein Array extrem gross lassen werde, geht es, d.h. an der Grösse kann es nicht scheitern.
Welcher Cluster?
(06.07.2012 05:56 )GT123 schrieb: [ -> ]Gibt es da irgendwelchen Zeichen die inkompatibel sind oder Probleme verursachen?

Es muss ja einen Grund geben, es kann doch nicht sein das es mal geht und mal nicht.
Vielleicht wisst ihr/jemand schon mehr dazu.
Wir wissen ja nicht einmal genau, was bei dir geht und was nicht?
(06.07.2012 06:17 )GT123 schrieb: [ -> ]Bahn Habe gerade noch folgendes getestet und nicht verstanden:

Ich habe zwei Binärdatein, eine die kann geladen werden die andere nicht.
Von Binärdatei die geladen werden kann mit Editor alles markiert und in die die nicht geladen werden kann
eingefügt, gespeichert. Danach sollte doch auch die Datei die anfangs nicht geladen werden konnte, geladen werden können. Das verstehe ich nicht.
Gefährlich, gefährlich. Welcher Editor? Am Ende irgendein Text-Editor? Damit würde ich auf gar keinen Fall Binärdateien bearbeiten! Alleine schon die unterschiedliche Behandlung von Zeilenumbrüchen, einmal ist das nur ein "newline", woanders "CR"+"NL". Und wenn der Editor beim Copy-Paste oder beim Speichern eine solcher Änderung vornimmt, schon ist deine Binärdatei kaputt.

Gruß, Jens
(06.07.2012 06:17 )GT123 schrieb: [ -> ]Bahn Habe gerade noch folgendes getestet und nicht verstanden:

Ich habe zwei Binärdatein, eine die kann geladen werden die andere nicht.
Von Binärdatei die geladen werden kann mit Editor alles markiert und in die die nicht geladen werden kann
eingefügt, gespeichert. Danach sollte doch auch die Datei die anfangs nicht geladen werden konnte, geladen werden können. Das verstehe ich nicht.

Jens hat das Problem der Zielenenden schon angesprochen mit dem Kopieren im Editor. Dasselbe tritt aber auch auf wenn Du Deinen Flattened Cluster mit der Write to Text File Funktion abspeicherst. Die heisst nicht nur per Zufall "Text", denn die macht default Zeilenende (EOL) Konversion. Alle <CR> <LF>, <CR> und <LF> alleine werden dabei mit der für die aktuelle Platform geltenden Zeilenendekombination geschrieben. Unter Windows ist das <CR> <LF>.Und Read from Text File macht das Umgekehrte, indem alle diese Zeilenenden in das LabVIEW Zeilenende <LF> umgesetzt wird. Darum sollte man für Binary Daten ja auch Write to Binary File UND Read from Binary File verwenden.
Hallo rolfk, hallo Jens,

Der Grund warum ich das Read/Write to Text File verwende ist damit ich zu Beginn der "Daten" ein Header schreiben kann mit Infos. Genauer gesagt eine Info welche Version des Cluster hier verwendet wird.
Später soll dies beim Laden berücksichtigt werden und das jeweilige Cluster als Datentyp verwendet werden.
Damit kann das Cluster weiterentwickelt werden und ältere Daten sollen geladen werden können.

Jens:
Welche Datenstruktur? Welcher Cluster? -> ein Cluster bestehend aus vielen Controls Strings Arrays...

Wir wissen ja nicht einmal genau, was bei dir geht und was nicht? -> habe ein Bild im Anhang das es zeigen soll, zum einen das Cluster speichern, und dann wieder laden.

rolfk:
"Dasselbe tritt aber auch auf wenn Du Deinen Flattened Cluster mit der Write to Text File Funktion abspeicherst."
Ok, wenn ich nun aber immer auf dem gleichen Rechner arbeite, sprich speichern und laden, sollte es doch immer gehen?


Hoffe ich konnte alle Unklarheiten beseitigen.
(06.07.2012 09:15 )GT123 schrieb: [ -> ]Ok, wenn ich nun aber immer auf dem gleichen Rechner arbeite, sprich speichern und laden, sollte es doch immer gehen?

Nein, dann geht es noch nicht. Denn Binärdateien können jede beliebige Zeichenfolge enthalten, und das wird dann beim Speichern "modifiziert". Zurücklesen konvertieret alles nach dem LabVIEW standard, also noch einmal ein Konversion.

Wenn man Binärdaten schreiben will sollte man die Binärdaten VIs verwenden! Die sind nicht zur Dekoration da sondern aus gutem Grund!

Es hindert Dich niemand, Texstrings mit den Binärdaten VIs zu speichern. Umgekehrt geht es aber gut falsch.
Seiten: 1 2
Referenz-URLs