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!
Ich versuche mich krampfhaft seit knapp 2 Stunden daran eine binäre Datei auszulesen. Leider blieb das ganze bisher ohne Erfolg, so dass ich hoffe hier den richtigen Weg gewiesen zu bekommen.
In erster Näherung möchte ich gerne den Header aus der Datei auslesen. Laut Handbuch ist dieser 256 Bytes lang und beinhaltet verschiedenste Informationen. Jede Info ist durch einen Byte Offset und eine Länge angegeben.
Beispielsweise ist eine Information wie folgt charakterisiert:
Ich versuche mich krampfhaft seit knapp 2 Stunden daran eine binäre Datei auszulesen. Leider blieb das ganze bisher ohne Erfolg, so dass ich hoffe hier den richtigen Weg gewiesen zu bekommen.
In erster Näherung möchte ich gerne den Header aus der Datei auslesen. Laut Handbuch ist dieser 256 Bytes lang und beinhaltet verschiedenste Informationen. Jede Info ist durch einen Byte Offset und eine Länge angegeben.
Beispielsweise ist eine Information wie folgt charakterisiert:
Nun ist mein Problem das ich nicht weiß, wie ich damit genau umgehen soll. W+rde mich sehr freuen, wenn mir jemand auf die Sprünge helfen könnte.
Schönen Gruß
Falk
Sollte nicht zu schwer sein. Mach dir einen Cluster aus der definierten Struktur und schliesse diesen Cluster oben (Typenbezeichnung) an Read Binary File.
ja das habe ich nun auch schon ausprobiert, aber irgendwie klappt das auch nicht so wie es soll. Entweder ist in dem Handbuch ein Fehler oder ich stell mich wirklich nur zu glatt an. Einige Header-Informationen bekomme ich richtig aus der Datei raus, andere stimmen vorne und hinten nicht. Als Referenz hab ich zum einen die Einstellungen ja am Gerät (die sollten ja auch in der Datei drin sein), zum anderen existiert in unserer AG dazu ein kleines C-Programm was die Dateien in ASCII konvertiert. Und da stimmen halt die Werte.
Unten angehangen mal ein einfaches VI wie ich derzeit versuche einzelne Header-Informationen auszulesen. Ich setzte den Byte Offset wie im Handbuch beschrieben und lese dann die Länge (ebenfalls aus dem Handbuch). Danach noch eine Typenumformung des Byte-Arrays in die gewünschten Datentyp. Wie gesagt bei einigen Dingen klapt das, bei anderen nicht. Falls jemand möchte, so kann ich auch mal eine Binärdatei anhängen.
Hast du probiert Byte-Order zu ändern? LV hat standardmäßig Big-Endian (weil es bei MAC angefangen wurde und MAC hat Big-Endian Datenstruktur, so hat NI es auch für Windows beibehalten). Nimm dir Little-Endian. Was es bedeutet, kannst du googeln.
Noch ein Vorschlag wäre die Daten mit einem HEX-Editor zu betrachten, wenn du keins hast, kannst du die Datei in ein String element einlesen, das auf HEX-Darstellung eingestellt ist.
Noch muss man aufpassen, dass LV standardmässig Array, String Size vornedranhängt oder es beim Parsen voraussetzt.