LabVIEWForum.de - Backslash im String platzieren

LabVIEWForum.de

Normale Version: Backslash im String platzieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo ich beschäftige mich erst seit kurzem mit Labview und hab natürlich ein kleines Problem wo ich zurzeit nicht weiter komme. Ich hoffe ihr könnt mir helfen.

Folgendes ich möchte gerne eine ganzzahlige, positive Zahl zwischen 200 und 8.500 über das Frontpanel eingeben und als Hexadezimalzahl in einem String wieder ausgeben. Dabei soll der Ausgabestring wie folgt aussehen *H\03\E8\r. Wenn ihr euch mein VI an sehet klappt das mit dem String1 ganz gut. Problem nur ich habe keine Lust für jeden Wert von 200 bis 8.500 einen Case-Fall zu erzeugen. Meine Idee war es den Eingabewert in eine Hexadezimalzahl umzuwandeln, zu teilen und dann an die entsprechenden Stellen das Backslash einzufügen. Problem war nur immer wenn ich ein Backslash eingefügt habe kamen automatisch immer zwei Backslash.

Ich hab leider keine Idee mehr was ich tun soll, könnt ihr mir weiter helfen?
Hallo Philipp,

einfach FormatIntoString mit einem passenden Formatstring:
[attachment=55111]
Hallo GerdW,

vielen Dank für deine schnelle Antwort. Ich hab gleich deinen Vorschlag ausversucht bekomme aber immer noch zwei Backslash statt einem sieht jetzt so aus *H\\03\\E8\\r. Kannst du mir mal bitte dein VI schicken oder hast du was umgestellt?
Dann steht deine String Anzeige offenbar auf "Display-Style" '\' Codes Display. Stell auf Normalanzeige um.

Gruß, Jens
Du hast Deine Frage zwar klar formuliert, aber ich kann mir nicht vorstellen, dass irgendein Gerät so einen komischen String fordert. Mich beschleicht der Verdacht, dass Du in dem Manual des Gerätes etwas nicht richtig verstanden hast. Daß z.B. "\r" nicht zwei Stringzeichen sind, sondern für Wagenrücklauf (HEX10) steht. Poste doch einfach mal die betreffende Stelle aus dem Manual, dann werden wir sehen.
Danke ich hab es geschafft jetzt läuft es. Noch mal danke für eure Hilfe Guru1
hier meine Lösung für mein Problem
Hallo Philipp,

warum arbeitest du mit DBL-Werten, wenn du "ganzzahlige, positive Zahl(en) zwischen 200 und 8.500" verwendest? Nimm U16/U8 stattdessen!

Und wenn du schon mit BuildArray arbeitest, kannst du das CR (=0x0D) auch gleich dort anhängen:
[attachment=55116]
Die ganze Stringfolge ist suspekt. Das Zeilenendezeichen \r kann nämlich ebenso in den vorangehenden beiden Datenbytes vorkommen (hier sind alle Zeichen 0..255 möglich). Ebenso die Zeichen "*" und "H". Wenn diese Zeichen also bei der Datenübertragung zur Synchronisation benutzt werden, dann geht das in die Hose.
Referenz-URLs