LabVIEWForum.de
eigen erstellte Binärdatei 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: eigen erstellte Binärdatei einlesen (/Thread-eigen-erstellte-Binaerdatei-einlesen)

Seiten: 1 2


eigen erstellte Binärdatei einlesen - calimero - 23.11.2005 09:41

Hallo,

ich habe eine eigen erstellte Binärdatei und möchte diese mit LV einlesen.
Ich habe die Binärdatei mal hochgeladen, in der stehen einhaufen Werte dich ich hier nicht alle aufführen möchte, jedoch beginnt sie zu begin mit einem Integer-Wert 10000, gefolgt von einem Charakter mit der Länge 260, dann wieder ein Charakter mit der Länge 11 und nochmals ein Charakter mit der Länge 9.
Zur Erklärung der Integerwert ist die Versionsnummer, der Charakter der Länge 260 beinhaltet einen Pfad, der mit der Länge 11 das Datum und der mit der Länge 9 die Zeit.
Der Pfad, das Datum und die Zeit kann man sehr gut auslesen, jedoch mit der Version, da bekomme ich immer nur Müll zurück.
Vielleicht kann mir ja hier einer helfen.
Gruss
calimero

Ps: Leider kann ich die Binärdatei nicht anfügen, weil die Endung nicht gestattet ist. Würde es ja gerne binär.vi nennen, aber ich weis nicht ob da die Admins mit machen.


eigen erstellte Binärdatei einlesen - Buhrz - 23.11.2005 09:49

Hi

Lad doch mal dein VI hoch
Vieleicht kann man ja sehen wo dein Problem ist

gruß

Jürgen


eigen erstellte Binärdatei einlesen - calimero - 23.11.2005 10:02

Werde ich machen aber ich glaube nicht das das was helfen wird. ich habe noch ein paar Kommentare in das Vi geschrieben zur besseren Erklärung was ich mit den verschiedenen Variablen bezwecke.
Es wäre noch dazu sagen das mit VisualC++ die Binärdatei einwandfrei gelesen werden kann also an der Binärdatei liegt es nicht die ist korrekt.
gruss
calimero


eigen erstellte Binärdatei einlesen - Buhrz - 23.11.2005 10:35

Hi

Ich glaube du mußt erst die vier bytes zusammen führen zu einem long int und dann dir die Zahl anschauen oder noch einen cast machen.

Als vorschlag copiere dochmal die binär daten in ein string control und sage dann make current value default
Dann kann ich die daten wieder einfach speicher und somit kann ich sie dann auch von platte lesen

Gruß

Jürgen


eigen erstellte Binärdatei einlesen - calimero - 23.11.2005 10:40

habe gerade heraus gefunden das es irgendwas mit dem Binärcode zutun hat.
Denn der Binärcode von 10000 ist 00100111 00010000
von 16 00000000 00010000
von 39 00000000 00100111
Jetzt muss ich nur noch die 16 und 39 so zusammen fügen damit sie die 10000 ergeben ;o) vielleicht hat ja einer von euch eine Idee.
Gruss
calimero


eigen erstellte Binärdatei einlesen - Buhrz - 23.11.2005 11:25

Hi

wie wird die 1000 (Ist die Zahl ASCII oder int oder ..)gewandelt in den Binärcode
Wenn du das weist brauchst du doch nur noch die Umkerung zu programmieren

Oder seh ich das zu einfach

Gruß

Jürgen


eigen erstellte Binärdatei einlesen - calimero - 23.11.2005 11:43

die 10000 ist ein Integer Wert, bin schon die ganze Zeit daran die 16 und 39 zu tauschen, soll ich das einfach mit dem Array tun?
oder gibt es da was spezielles in LV?


eigen erstellte Binärdatei einlesen - Buhrz - 23.11.2005 11:54

Hi

Also bei den binären daten ist folgendes Problem
von 16 00000000 00010000
von 39 00000000 00100111

du mußt das obere byte verwerfen also nur die unteren 8 bits benutzen und sie dann zusammen führen

Hierfür gibt es in LabVIEW eine funktion unter
AdvancedData ManipulationJoin number

Ich hoffe das hilft

Gruß

Jürgen


eigen erstellte Binärdatei einlesen - calimero - 23.11.2005 17:30

hier bin ich wieder,
stehe nun vor dem Problem das ich einen Doublewert einlesen möchte, und da ist es nicht getan mit Byte vertauschen.
Vielleicht hat ja schon einmal jemand so was versucht.
Irgendwie muss man hier mit dem Exponent und Mantisse arbeiten, aber habe bisher noch nichts gefunden.

Gruss
calimero


eigen erstellte Binärdatei einlesen - Buhrz - 24.11.2005 10:09

Hast du es schon mal mit der cast funktion probiert

Also erst die bytes zusammenbauen und dann casten nach doupel

Gruß

Jürgen