INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer



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!

15.07.2015, 21:21 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2015 21:23 von hansi9990.)
Beitrag #1

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Hallo zusammen

Ich suche eine Möglichkeit um einen Sting (je 3zeichen entsprechen 1Byte) zu zerlegen und als Zahl auszugeben.
So sollte z.B. ein String der so aussieht 255255255255 in seine einzelnen Bytezeichen zerlegt werden 255 255 255 255 = FF FF FF FF = 4294967295 oder 255 255 = FF FF = 65535..
Gibt es dafür eine Funktion oder ein fertiges vi oder kennt jemand eine Möglichkeit und kann mir auf die Sprünge helfen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2015, 23:05
Beitrag #2

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
(15.07.2015 21:21 )hansi9990 schrieb:  Gibt es dafür eine Funktion oder ein fertiges vi oder kennt jemand eine Möglichkeit und kann mir auf die Sprünge helfen?

Ich fürchte, das wirst du selbst programmieren müssen. Du müsstest dir jeweils 3 Zeichen abspalten und diese in ein Byte wandeln. Dann verknüpfst du die Bytes mit der Byteverknüpfungsfunktion bis zu einer 32 Bitzahl.

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 08:25 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2015 08:43 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Hallo Hansi,

Zitat:ein String der so aussieht 255255255255 in seine einzelnen Bytezeichen zerlegt
Oh die Wunder der Formatstrings:
   

Achja, eine Idee zum zweiten Teil der Frage:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 11:02
Beitrag #4

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Danke für den Input. Wink
Es hat sich ergeben das ich den ersten Teil nicht mehr benötige da ich jetzt mit einem U8 Zahlen Array arbeiten kann.
Zum zweiten Teil habe noch ein Anliegen, kann man irgendwie die Max Bytelänge des am Typumwandler angelegten Referenz-Datentyp herausfinden (U8 und I8 = 1 U16 und I16 = 2 U32 und I32 = 4)?
Ich möchte je nach Datentyp die Länge im Array ausschneiden, ich habe es so wie im Anhang versucht aber das funktioniert so nicht.
Hat jemand eine Idee wie ich das machen könnte?


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 11:45
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Hallo hansi,

Zitat:Ich möchte je nach Datentyp die Länge im Array ausschneiden, ich habe es so wie im Anhang versucht aber das funktioniert so nicht.
Und warum nicht? Weil in deinem BD einige CoercionDots zu sehen sind!

Mögliche Lösung: erstelle für jeden Datentyp einen Case. Im Case holst du die Bytes aus dem Array und wandelst die Daten um. Dann wandelst du den so erzeugten Datentyp in den größtmöglichen/größt-genutzten um und gibst ihn aus dem Case aus.

Warum? Weil LabVIEW streng typisierte Drähte verwendet! Du kannst dank THINK DATAFLOW nicht verschiedene Datentype über ein und denselben Draht laufen lassen! (Wenn man Variant, was hie rnicht hilft, außer acht lässt.)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 12:09
Beitrag #6

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Hallo Gerd

Danke.

Ich habe jetzt 6 einzelne VI's (I8,I16,I32,U8,U16 und U32) ohne Case Struktur erstellt, den Ausgang habe ich auf "an Quelle anpassen" gesetzt und daraus dann ein Polymorphes Vi gemacht, das funktioniert auch.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.07.2015, 12:15
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Hallo hansi,

Zitat:das funktioniert auch.
Wenn es hinterher über einen Draht weitergehen soll, dann musst du um das polymorphe VI herum eine Casestruktur bauen und auf den größten Datentyp coercen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 14:04
Beitrag #8

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
?? Sorry, verstehe nicht was du damit meinst.
So wie im Bild dargestellt soll es dann weitergehen (in dem subVI "Byte Array Converter" versteckt sich das Polymorphe VI.)


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 14:10
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Hallo hansi,

Zitat:in dem subVI "Byte Array Converter" versteckt sich das Polymorphe VI.
Ist das das polymorphe VI oder ist dieses darin enthalten?
Fakt ist, dass du hier immer den gleichen Datentyp herausbekommst, wie oben schon mehrfach geschrieben!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2015, 14:25 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2015 14:29 von hansi9990.)
Beitrag #10

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer
Nein, ich komme nicht mit dem gleichen Datentyp heraus.
Ich habe es gerade probiert, der Datentyp am Ausgang passt sich am Datentyp an der oben unter "Typ" vorgegeben wird. Es ist natürlich Voraussetzung das am VI ein Element mit den benötigten Typ angeschlossen wird.
Das liegt wohl daran das ich bei allen subVI's das Anzeigeelement (in meinem Bild mit "Wert" bezeichnet) auf "An Quelle anpassen" gesetzt habe.
Habe das Polymorphe VI mal angehängt.
Ups sorry, dazu werden natürlich auch die subVI's benötigt. Wink
Das auch noch.


Angehängte Datei(en) Thumbnail(s)
   

14.0 .vi  ByteArray_coverter.vi (Größe: 8,92 KB / Downloads: 210)

14.0 .vi  ByteArray_to_I8.vi (Größe: 11,87 KB / Downloads: 223)

14.0 .vi  ByteArray_to_I16.vi (Größe: 12,04 KB / Downloads: 198)

14.0 .vi  ByteArray_to_I32.vi (Größe: 11,86 KB / Downloads: 187)

14.0 .vi  ByteArray_to_U8.vi (Größe: 11,85 KB / Downloads: 197)

14.0 .vi  ByteArray_to_U16.vi (Größe: 11,88 KB / Downloads: 190)

14.0 .vi  ByteArray_to_U32.vi (Größe: 11,87 KB / Downloads: 184)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Dezimal-String nach Zahl Funktion ares2013 4 5.031 10.04.2019 13:12
Letzter Beitrag: jg
  Name Referenz von Hex in Dezimal voellig_egal 9 5.849 21.06.2018 14:31
Letzter Beitrag: voellig_egal
  16bit Integer über Uart schicken floH857 2 3.647 10.01.2017 17:11
Letzter Beitrag: floH857
  16 Bit in Integer umwandeln Ingo2 6 7.055 02.12.2015 18:09
Letzter Beitrag: IchSelbst
  2er Kompliment 12bit fix-point integer Slev1n 4 5.820 24.11.2015 10:59
Letzter Beitrag: Lucki
  Problem Hexadezimal zu Dezimal Wandlung Fraser-Island 6 5.763 29.07.2015 10:34
Letzter Beitrag: Fraser-Island

Gehe zu: