LabVIEWForum.de - Umwandelung von String in DBL

LabVIEWForum.de

Normale Version: Umwandelung von String in DBL
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Ich habe ein Problem und hoffe auf eine Lösung. Wie kann ich ein String in ein Zahl (DBL) umwandeln. Ich habe ein kleinen Screenshot angehängt.
Das Problem hier bei ist das ich von Hex noch in Dezimal umrechnen muss und dabei die Bytes noch rotiert werden müssen. Ich hoffe das ist verständlich was ich meine.

Vielen Dank im Vorraus für eure Hilfe.

H.St.

[attachment=26338]
Hi,
ich bin immer noch Anfaenger, aber es gibt in der String-Palette Vis zum Umwandeln, vielleicht hilft das?
Hallo H.St.,

eine Lösung anzubieten wäre viel einfacher, wenn du genau sagst, was rauskommen soll.

Du liest erst ein Byte mit einer Längenangabe, dann liest du diese Anzahl an Bytes. So weit, so gut.
Nun wandelst du jedes Byte in eine HexString-Darstellung (mit Leerzeichen zwischendrin) um. Warum, wenn du hinterher noch rechnen willst?

Willst du nicht eher zusammengehörende Bytes in eine I32 oder DBL-Zahl umwandeln? Da würde sich ein TypeCast o.ä. anbieten!
Also bitte genau sagen, welche Bytes aus dem Stream wie umgewandelt werden sollen!
Nimm dir Unflatten From String, aber direkt vom Visa Read Ausgang.
Hallo zusammen,

Ich versuche es nochmal genauer zu erklären. Ich bin jedoch in diesen Dingen leider noch nicht so erfahren. Ich bekomme folgenden Output aus dem Gerät:
14 00 65 F4 01 00 00 58 1B 00 00 02 ED 13 00 01 00 00 00 E4 als HEX. Interessieren in diesem Fall tut mich folgender Part F4 01 00 00 dieser muss umgerechnet werden in
00 00 01 F4 um den wahren Wert (500) zu erhalten und dann müßte das ganze noch in DBL (500 müßte in dem Fall raus kommen) umgerechnet werden.

Deshalb nehme ich den String am Anfang auseinander. Ich hoffe das dies zur Klärung beiträgt.

@eg: Mit dem Befehl Unflatten String komme ich leider nicht zurecht.

Vielen Dank für die Hilfe
Hallo H.St.,

folgende Vorgehensweise:
- die 4 Bytes/Zeichen aus dem String ausschneiden (per StringSubset)
- anschließen an UnflattenFromString, als Typ eine I32-Konstante anschließen, byte order entsprechend vorgeben => als Ergebnis erhälst du deine Integerzahl
- diesen Integer an ein "normales" ConvertToDBL anschließen
Also so (2 Möglichkeiten):
[attachment=26356]
Ob als Typ eine U32- oder I32- Konstante anzuschließen ist, muß Du selbst wissen, je nachden ob die Zahlen vorzeichenbehaftet sind oder nicht. Beim Wert 500 kommt in beiden Fällen das Gleiche heraus.

BTW: In der Hilfe zu "Unflatten from String" steht: Für die Typwandlung sollte man Typecast verwenden. Ist das so zu verstehen, das "Unflatten From String" nur noch eine Altlast ist, die man besser vermeiden sollte?
Referenz-URLs