LabVIEWForum.de
Umwandelung von String in DBL - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Umwandelung von String in DBL (/Thread-Umwandelung-von-String-in-DBL)



Umwandelung von String in DBL - H.St. - 09.05.2010 15:53

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]


Umwandelung von String in DBL - bluesaturn - 09.05.2010 18:49

Hi,
ich bin immer noch Anfaenger, aber es gibt in der String-Palette Vis zum Umwandeln, vielleicht hilft das?


Umwandelung von String in DBL - GerdW - 09.05.2010 19:51

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!


Umwandelung von String in DBL - eg - 10.05.2010 00:47

Nimm dir Unflatten From String, aber direkt vom Visa Read Ausgang.


Umwandelung von String in DBL - H.St. - 10.05.2010 09:19

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


Umwandelung von String in DBL - GerdW - 10.05.2010 09:53

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


Umwandelung von String in DBL - Lucki - 10.05.2010 14:18

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?