LabVIEWForum.de
Aus binärer Datei einlesen - 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: Aus binärer Datei einlesen (/Thread-Aus-binaerer-Datei-einlesen)

Seiten: 1 2


Aus binärer Datei einlesen - unbekannt - 20.02.2014 14:31

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.


RE: Aus binärer Datei einlesen - GerdW - 20.02.2014 14:55

Hallo unbekannt (toller Nick…),

Zitat:Fast alle Daten sind im 32er-Format.
Was soll das für ein Format sein?

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?


RE: Aus binärer Datei einlesen - unbekannt - 20.02.2014 15:34

(20.02.2014 14:55 )GerdW schrieb:  Hallo unbekannt (toller Nick…),

Zitat:Fast alle Daten sind im 32er-Format.
Was soll das für ein Format sein?

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.


RE: Aus binärer Datei einlesen - GerdW - 20.02.2014 15:41

Hallo unbekannt,

Zitat:Mit 32er-Format meinte ich schon 32 Byte.
Und was enthalten diese Blöcke zu je 32 Byte?

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…


RE: Aus binärer Datei einlesen - unbekannt - 20.02.2014 17:16

(20.02.2014 15:41 )GerdW schrieb:  Hallo unbekannt,

Zitat:Mit 32er-Format meinte ich schon 32 Byte.
Und was enthalten diese Blöcke zu je 32 Byte?

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.

OK, wie wandle ich den String in Doubles um?

Array of Cluster? Danke für den Hinweis.


RE: Aus binärer Datei einlesen - jg - 20.02.2014 19:20

(20.02.2014 17:16 )unbekannt schrieb:  OK, wie wandle ich den String in Doubles um?
Glas2 Keine Ahnung, die Glaskugel gibt da auch nichts her. Ohne Beschreibung des FDx Formats könnte das alles mögliche sein.
Ironie Vielleicht soll jeweils Bit0 aller 32 Bytes zu einem 32bit Wert zusammengefasst werden, der dann als IEE754 Single Wert zu interpretieren ist.

Gruß, Jens


RE: Aus binärer Datei einlesen - unbekannt - 21.02.2014 12:03

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.


RE: Aus binärer Datei einlesen - jg - 21.02.2014 12:30

Hallo,

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


RE: Aus binärer Datei einlesen - Y-P - 21.02.2014 13:40

Bitte Groß- und Kleinschreibung beachten. Rulez

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.



RE: Aus binärer Datei einlesen - Lucki - 21.02.2014 17:16

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.