Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
20.02.2014, 14:31 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2014 14:31 von unbekannt.)
Ich möchte aus einer binären Datei (weiß sonst keinen Weg, wie ich es sonst machen soll, ist ein seltenes Dateiformat) Daten einlesen und sie dann wieder als Integers in einem Cluster ausgeben. Fast alle Daten sind im 32er-Format. Da ich noch nicht so lange mit LabView arbeite, poste ich hier einmal das, was ich versucht habe. Keine Ahnung, ob es stimmt oder ob es Müll ist.
Anzeige
20.02.2014, 14:55 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2014 15:09 von GerdW.)
Zitat:poste ich hier einmal das, was ich versucht habe.
Schönes Bild. Ein Snippet oder ein VI wäre wesentlich besser gewesen…
Zitat:Keine Ahnung, ob es stimmt oder ob es Müll ist.
Woher sollen wir dies beurteilen, wenn du uns weder eine Beispieldatei noch die daraus erwarteten Daten nennst?
Da du aber immer 32 Byte einliest und aus diesem String dann versuchst, eine Hexadezimalzahl zu erfassen, würde ich denken, dass du falsch vorgehst. Und warum man 11 Einzelwerte per "Cluster-Array erstellen" zusammenfassen muss, erschließt sich auch nicht…
Um deine Frage zu beantworten/dein Problem zu lösen, benötigt man
- genaue Angaben zum Aufbau deiner "Binärdaten", am besten mit Beispielen hinterlegt
- genaue Angaben, in welchem Format/in welcher Struktur du deine ausgelesenen Daten ablegen willst…
- Du verzichtest überall auf Errorhandliung. Warum?
- Du baust einen Pfad aus Strings zusammen. Schon mal überlegt, warum es spezielle Funktionen (in der File-Palette) gibt, mit denen man Pfade zusammenbauen kann?
Zitat:poste ich hier einmal das, was ich versucht habe.
Schönes Bild. Ein Snippet oder ein VI wäre wesentlich besser gewesen…
Zitat:Keine Ahnung, ob es stimmt oder ob es Müll ist.
Woher sollen wir dies beurteilen, wenn du uns weder eine Beispieldatei noch die daraus erwarteten Daten nennst?
Da du aber immer 32 Byte einliest und aus diesem String dann versuchst, eine Hexadezimalzahl zu erfassen, würde ich denken, dass du falsch vorgehst. Und warum man 11 Einzelwerte per "Cluster-Array erstellen" zusammenfassen muss, erschließt sich auch nicht…
Um deine Frage zu beantworten/dein Problem zu lösen, benötigt man
- genaue Angaben zum Aufbau deiner "Binärdaten", am besten mit Beispielen hinterlegt
- genaue Angaben, in welchem Format/in welcher Struktur du deine ausgelesenen Daten ablegen willst…
- Du verzichtest überall auf Errorhandliung. Warum?
- Du baust einen Pfad aus Strings zusammen. Schon mal überlegt, warum es spezielle Funktionen (in der File-Palette) gibt, mit denen man Pfade zusammenbauen kann?
Die Strings brauche ich später auch einzeln, deswegen habe ich das so gemacht. Aber wenn ihr eine bessere Idee habt, bitte gerne. Das mit dem Errorhandling habe ich noch nicht durchgemacht, soll ich aber dann einbauen.
Mein File ist im FDx-Format und ich soll die Doubles in einer Struktur ablegen und da kam mir der Cluster in den Sinn.
Mit 32er-Format meinte ich schon 32 Byte.
OK, keine Hexadezimalzahl, ersten Fehler mal erfasst.
20.02.2014, 15:41 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2014 15:47 von GerdW.)
Zitat:ich soll die Doubles in einer Struktur ablegen
Welche Doubles? In deinem Bild oben arbeitest du mit Integerwerten, aller Wahrscheinlichkeit U32…
Zitat:da kam mir der Cluster in den Sinn.
Du erzeugst aber keinen Cluster, sondern ein Array of Cluster…
Zitat:Aber wenn ihr eine bessere Idee habt, bitte gerne
Eine FOR-Loop, die 11mal durchläuft, jeweils 32 Byte einliest und so ein Array of Strings ausgibt.
Oder einmal 352 (=11*32) Byte einlesen und die dann in einem Rutsch auswerten…
Merke: alles, was mehrfach kopiert in einem VI läuft, gehört besser in eine Schleife, die diese Aufgabe x-mal durchführt!
Kannst du "FDx" genauer erläutern? Google spuckt zu viele unterschiedliche Möglichkeiten dazu aus…
Zitat:ich soll die Doubles in einer Struktur ablegen
Welche Doubles? In deinem Bild oben arbeitest du mit Integerwerten, aller Wahrscheinlichkeit U32…
Zitat:da kam mir der Cluster in den Sinn.
Du erzeugst aber keinen Cluster, sondern ein Array of Cluster…
Zitat:Aber wenn ihr eine bessere Idee habt, bitte gerne
Eine FOR-Loop, die 11mal durchläuft, jeweils 32 Byte einliest und so ein Array of Strings ausgibt.
Oder einmal 352 (=11*32) Byte einlesen und die dann in einem Rutsch auswerten…
Merke: alles, was mehrfach kopiert in einem VI läuft, gehört besser in eine Schleife, die diese Aufgabe x-mal durchführt!
Kannst du "FDx" genauer erläutern? Google spuckt zu viele unterschiedliche Möglichkeiten dazu aus…
Messdaten sollten es sein, aber Genaueres weiß ich sellbst nicht, daher auch leider keine Ahnung vom Format.
(20.02.2014 17:16 )unbekannt schrieb: OK, wie wandle ich den String in Doubles um?
Keine Ahnung, die Glaskugel gibt da auch nichts her. Ohne Beschreibung des FDx Formats könnte das alles mögliche sein.
Vielleicht soll jeweils Bit0 aller 32 Bytes zu einem 32bit Wert zusammengefasst werden, der dann als IEE754 Single Wert zu interpretieren ist.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
sorry, schreibt es doch gleich, dass ihr keine neuen leute wollt. dann erspart man es sich, hier fragen zu stellen, in der hoffnung, man würde eine respektvolle antwort bekommen. wenn ich wollte, dass man sich über mich lustig macht, hätte ich das beim zirkus versucht.
21.02.2014, 12:30 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2014 12:31 von jg.)
du bist aber schnell angefressen! Natürlich wollen wir neue Leute.
Du stellst aber teilweise Fragen, die wir dir ohne weitere Hintergrundinfos nicht beantworten können.
Wie gesagt, ohne Infos DEINERSEITS, wie ich FDx zu interpretieren ist, kann ich dir nicht dabei weiterhelfen, wie du jetzt einen 32 Byte langen String in einen Double-Wert wandeln kannst. Ich habe dir, versehen mit dem Hinweis "Achtung Ironie", eine zugegebenermaßen absurde Möglichkeit dargestellt. Und von diesen absurden oder auch nicht absurden Möglichkeiten gibt es unendlich viele. Welche stimmt jetzt? Kannst du es sagen? Ich nicht.
Zu einer spezifischen Frage gehört auch immer Vollständigkeit der Hintergrund-Informationen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Aus binärer Datei einlesen
Bitte Groß- und Kleinschreibung beachten.
Gruß Markus
(21.02.2014 12:03 )unbekannt schrieb: sorry, schreibt es doch gleich, dass ihr keine neuen leute wollt. dann erspart man es sich, hier fragen zu stellen, in der hoffnung, man würde eine respektvolle antwort bekommen. wenn ich wollte, dass man sich über mich lustig macht, hätte ich das beim zirkus versucht.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
21.02.2014, 17:16 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2014 17:17 von Lucki.)
Tja, ohne Beschreibung der Datenfomate, die sich in der Binärdaei bfinden, ist leider nichts zu machen - eine vage Angabe wie "fast alle Daten sind im 32Bit-Format" reicht nicht. In jedem Fall solltest Du auch eine Beispieldatei posten. Statt einer detaillierten Beschreibung der enthaltenen Daten würde es auch ausreichen, genau die Daten mit zu posten, die in der Beispieldatei enthalten sein sollen. Der Rest ist dann, wie man das mit Labview umsetzt - und das ist die Kernkompetenz des Formus. Da wird jedem noch so unerfahrenen Anfänger schnell und feundlich geholfen - garantiert.