LabVIEWForum.de
String konvertieren normal-code-hex - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: String konvertieren normal-code-hex (/Thread-String-konvertieren-normal-code-hex)

Seiten: 1 2


String konvertieren normal-code-hex - GT123 - 14.02.2013 09:12

Hallo zusammen,

kann mir jemand sagen wie ich einen String in das Format normal, hex oder code umwandle?

Ich verwende ein Array mit Sringcontrols mit dem Format normal, möchte jedoch gewisse Ergebnisse die ich von einem Gerät erhalte in diese Array schreiben.
In einer Spalte z.B. in hex in der anderen in Codeformat....

Wenn ich das Control an sich in ein anderes Format ändere, sind ja alle dementsprechend geändert, dies will ich ja nicht.

lv12_img

Vielen Dank


RE: String konvertieren normal-code-hex - jg - 14.02.2013 09:16

Wenn du ein Array of Strings hast, dann geht das nicht (wie schon so häufig hier im Forum beschrieben).
Die Eigenschaften aller Array-Elemente sind immer identisch! Die "Code" oder die "HEX" Darstellung sind nur eben nur Eigenschaften/Darstellungsformen desselben Strings.

Gruß, Jens


RE: String konvertieren normal-code-hex - GerdW - 14.02.2013 09:25

Hallo GT,

hier greift neben Jens' Kommentar auch der immer wieder gegebene Rat, die Datenrepräsentation im BD/VI von der auf dem FP zu trennen!

Du kannst beliebige Daten im Speicher haben. Wie du diese dem Nutzer präsentierst, ist aber davon unabhängig! Wenn du also bestimmte Daten in HEX und andere im \-Code anzeigen willst, kannst du doch eine entsprechende Routine schreiben, die diese Aufgabe übernimmt und deine Daten für den Nutzer entsprechend aufbereitet...


RE: String konvertieren normal-code-hex - alieninvader - 14.02.2013 09:33

Moin moin,

also wenn ich die Frage richtig verstanden habe, suchst du folgendes:

Du hast einen Eingabe String mit beliebiger Darstellung und möchtest auf drei Ausgabe Strings mit normaler Darstellung.
String 1: normale Anzeige (nimmt den String unkonvertiert auf)
String 2: code Ausgabe (enthält einen Klartext string in Code Darstellung)
String 3: Hex Auszgabe (enthält einen Klartext string in Hex Darstellung)

Da ich neulich ein ähnliches Problem hatte, hier ein kleiner Lösungsvorschlag

String 1:
Das sollte klar sein, einfach den Eingabe String übergeben.

String 2:
Schritt für Schritt jedes Sonderzeichen suchen und ersetzen:
alle " " durch "\s", alle "Zeilenumbruch" durch "\n" und so weiter

String 3:
Der komplizierteste Weg. Du konvertierst deinen String in ein Array von unsigned Byte. Dieses Array geht in eine for Schleife und konvertiert die Zahl in einen Hex String.
Um das Ganze fortlaufend zu erhalten, musst du ein Schieberegister einfügen, welches mit einem leeren String initialisert wird und anschließend hinten immer den Hex String anfügt.
Den Ausgang des Schieberegisters packst du auf die Ausgabe.

Alles klar? Dann viel Spaß mit dem angehängten Vi

Gruß

Stefan


RE: String konvertieren normal-code-hex - GerdW - 14.02.2013 09:51

Hallo Stefan,

der "komplizierte" Weg wird einfacher, wenn man das Schieberegister weglässt.
Edit: Und noch einfacher, wenn man auch die Schleife weglässt... Big Grin

Außerdem noch ein weiterer Weg, alle anderen Anzeigeformate abzufragen:
[attachment=43548]
(Property Anzeigemodus, gefolgt von Property Text.Text)


RE: String konvertieren normal-code-hex - alieninvader - 14.02.2013 10:10

Hallo Gerd,

ah, okay. Ich verstehe das mit dem String - Array - Convert - Concatenate. Das macht durchaus Sinn so.

Was die Anzeigeformate angeht, das finde ich jetzt gut zu wissen (ich habe mich schon öfter gefragt, wie man das zur Laufzeit macht), aber das löst nicht das Problem. Es ging ja darum, in einem Array von String alle 3 Formate auszugeben. Darum der Weg alle tatsächlich zu konvertieren.

Oder kann man das, was auf dem Display im String erscheint auch wieder "falsch" (nämlich so wie es kodiert ist) einlesen?

Gruß

Stefan


RE: String konvertieren normal-code-hex - GerdW - 14.02.2013 10:17

Hallo Stefan,

Zitat:Es ging ja darum, in einem Array von String alle 3 Formate auszugeben. Darum der Weg alle tatsächlich zu konvertieren.
Ich würde es so ausdrücken: Es ging darum, Daten aus einer Datenstruktur/-speicher für die Anzeige auf dem FP aufzubereiten. Darum das konvertieren...

Zitat:kann man das, was auf dem Display im String erscheint auch wieder "falsch" (nämlich so wie es kodiert ist) einlesen?
??? Wie meinst du das?
"falsch"/"wie es kodiert ist" einlesen?

Die Property Text.Text gibt dir genau das als String, was auf dem Control/Indicator angezeigt wird. Also z.B. bei Hex-Anzeige inklusive Spaces nach jeweils 4 Hexziffern. Ob das für den gewünschten Einsatzfall erforderlich ist, muss der OP entscheiden. Es wäre nur ein weiterer Weg, Daten in die entsprechende Darstellung zu bringen. (Auch wenn der Weg über Propertynodes eher langsam ist, da er viele Threadwechsel erzwingt: Man sollte das nicht für eine Tabelle mit 1000en Einträgen machen...)


RE: String konvertieren normal-code-hex - alieninvader - 14.02.2013 10:27

(14.02.2013 10:17 )GerdW schrieb:  ??? Wie meinst du das?
"falsch"/"wie es kodiert ist" einlesen

Die Property Text.Text gibt dir genau das als String, was auf dem Control/Indicator angezeigt wird. Also z.B. bei Hex-Anzeige inklusive Spaces nach jeweils 4 Hexziffern.

Das meinte ich so, wie ich es geschrieben habe (mennoooo, nie versteht mich wer Big Grin ).

Also, ich nehme eine String Steuerung und schreibe hier "abc" rein. Das ganze lasse ich mir in einer String Anzeige als Hex darstellen. Dort steht "6162 63" drin.
Aber die Eigenschaft "Text.Text" der String Anzeige liefert mir dann wieder "abc".
Wenn ich es "falsch auslesen" würde (aus der Eigenschaft) müsste dort "6162 63" stehen. Das meine ich.

Ich hab hier gerade Lv 7.1, evtl. spielt das auch eine Rolle.

Gruß

Stefan


RE: String konvertieren normal-code-hex - GerdW - 14.02.2013 10:32

Hallo Stefan,

die Property "Text.Text" sollte dir genau das liefern, was gerade in der String-Anzeige dargestellt wird. Deshalb ja das Umschalten des Anzeigemodus, gefolgt vom Auslesen wie in meinem Bild oben.

Ich kann das Verhalten mit LV7.1 mangels dieser alten Version nicht überprüfen. Vielleicht machst du mit LV8.5 noch einen Gegencheck?


RE: String konvertieren normal-code-hex - alieninvader - 14.02.2013 10:44

Den Check mache ich auf jeden Fall und werde dann berichten, was passiert.

Wenn das funktioniert, wäre das ein echter Fortschritt für mich :-)

Gruß

Stefan