LabVIEWForum.de - Array das Cluster enthält, speichern und lesen

LabVIEWForum.de

Normale Version: Array das Cluster enthält, speichern und lesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen

ich komme grad nicht weiter, ich hatte mir das einfacher vorgestellt ....für einen prüfstand möchte ich verschiedene Parametereinstellungen abspeichern und wieder laden

dazu habe ich ein array erstellt, das mehere cluster gleichen typs enthält cluster1 = Parametereinstellung 1, cluster2 = parameterinstellung 2 usw..., das cluster besteht aus einem string, einem boolschen wert und einem Zahlenwert

das speichern funktioniert, nur leider schaffe ich es nicht, dass array wieder zu laden, bei
der "read file" funktion kommt dann die fehlermeldung:

---------------------------------------------------------------------------

Error 116 occurred at Read File in Array(Cluster) Speicher-Lesen.vi

Possible reason(s):

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


----------------------------------------------------------------------------

hat jemand einen tipp, wie ich das machen sollte, die abgespeicherten daten müssen nicht editierbar sein


vielen dank im vorrausSmile

Lv71_img
Hab's mir nicht genauer angeschaut, aber es könnte ein Bug sein.... (vgl. hier).

Gruß Markus
Moin cnogs!


Ich glaube das Problem ist, dass du versuchst einen Array wegzuschreiben. Pack diesen Array mal in einen Cluster und du wirst sehen, dass es funktioniert. Gleiches natürlich dann auch bei der Typenangabe beim Lesen der Datei.

Nachtrag:

Ich denke mal das es nicht am Wegschreiben des Arrays liegt, sondern darin, dass beim Einlesen der Datei die Länge des Typenarrays mit dem in der Datei übereinstimmen muss. Werde ich mal gleich ausprobieren.
Aber durch oben gesagtes solltest du das Problem los sein.

Nachtrag 2:
Das oben beschriebene Problem hat sich bestätigt, denn wenn mal die Array-Länge des Datentypes beim Einlesen auf die des Ausgangs-Arrays festsetzt funzt es. Siehe hierzu Bild 2. Also wenn du mich fragst würde ich das einfach mit dem Cluster machen und fertig!

Schöne Grüße
Falk
' schrieb:hat jemand einen tipp, wie ich das machen sollte, die abgespeicherten daten müssen nicht editierbar sein
Bei mir funktionierts mit Änderung der angeschlossenen boolschen Konstanten im VI Schreiben in "True" (= Stringgröße voranstellen)
Außerdem habe ich sicherheitshalber, (- siehe Bugbeschreibung - ) nochmals die Option "big-endian" an beiden VIs angeschlossen.
Ah ich nehme alles zurück und behaupte das Gegenteil, zumindestens meines Nachtrages 2.Big Grin

Es funktioniert eventuell nur, weil ich die Boolean-Konstante weggenommen habe und der Default-Wert des Connectors "prepend array or string size" des VIs "Write to binary" = True ist. Also vergiß meinen Kommentar dazu:DAch man kann es auch komplizierter machen als es istSmile.

Schöne Grüße
Falk
Hallo, vielen dank für eure Hilfe !!!

ich habe in der zwischenzeit auch noch weiter rumgetüftelt (bin ja schon den ganzen tag damit beschäftigt...leider) und habe jetzt auch eine lösung gefunden


ich wandle das array mit der funktion "Flatten To String" in einen string und speichere den string mit der funktion "Write Characters To File" in eine Datei

das laden der datei erfolgt dann mit der Funktion "Read Charakters From File" , der geladene string wird dann mit der Funktion "Unflatten from String" wieder zurück gewandelt, dabei habe ich den Typ der wandlung mit einer lokalen variablen von dem array festglegt


vielen dank nochmal für die schnelle Hilfe


Rolleyes

Lv71_img
Referenz-URLs