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!
' schrieb:also müßte ich wenn ich meinen hexcodestring zusammen setzte die entsprechenden formatierungsoptionen auswählen bzw. den Formatstring ansetzen oder wo wäre der günstigste zeitpunkt dafür?
Die Grundlage der Übertragung ist ja eigentlich ASCII, also "normaler, lesbarer Text", also z.B. "S300r". Das ist auch gut so.
Vorgehen kannst du wie du willst. Mehrere Wege führen zum Ziel. Ich würde, wolltest du also z.B. "S300" übertragen, wie folgt vorgehen (Ich bin nämlich ein Liebhaber des Formatierbefehls). "S" ist der Fehler, der kommt fest in den Formatstring. 300 ist der Wert des Parameters "S". Der ist variabel und ist daher das Argument im Formatstring: "S%dr". Das Format-Element hat also nur einen Eingang links unten. Das Ergebnis des Formatstrings ist dann bereits ein gültiger Wert, der über VISA übertragen werden kann. Sollte es tatsächlich notwendig sein "S300r" als HEX zu übertragen, machst du das wie im Bild: Zuerst den ASCII-String erzeugen und daraus dann den HEX-String mit der entsprechenden String-U8-Wandlung und der FOR-Schleife.
Solltest du Daten übertragen müssen, die nicht als ASCII darstellbar sind (also nicht z.B. per Tastatur eingebbar), dann generierst du ein U8-Array, das als Inhalt die zu übertragenden Daten hat. Das kann zwar etwas mühsam und auch kompliziert sein, geht aber immer. Guckst du Konvertierung String nach U8. Ist genau das selbe.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
ich hatte leider erst jetzt wiedermal Gelegenheit weiter an meiner Problemstellung zu arbeiten, ich bin jetzt soweit das ich die Detektion auch das führende Dollarzeichen im Programm habe und dann die beiden folgenden Zeichen als HexCode in Ascii Darstellung interpretieren möchte, also ich gebe ein 53 oder 52 ein und möchte das diese Zahl so über die VISA-Schnittstelle weitergegeben wird, ich habe versucht das über die Schleife zu realisieren, aber er trennt mir die beiden Zeichen in zwei Einzelzeichen auf z.B. 35 33 oder 35 52, die restlichen Zeichen die den Wert enthalten werden korrekt übertragen.
Aber wo liegt mein Fehler bei den ersten beiden Zeichen und was könnte man da machen?
' schrieb:also ich gebe ein 53 oder 52 ein und möchte das diese Zahl so über die VISA-Schnittstelle weitergegeben wird, ich habe versucht das über die Schleife zu realisieren, aber er trennt mir die beiden Zeichen in zwei Einzelzeichen auf z.B. 35 33 oder 35 52, die restlichen Zeichen die den Wert enthalten werden korrekt übertragen.
Wenn du die beiden Zeichen "5" und "3" eingibst, werden die natürlich auch als zwei Zeichen übertragen.
Gibt halt statt "53" einfach "S" ein. "S" ist das, was du mit 53 haben willst.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Das ist das Problem. Bei der Eingabe von S geht das noch, aber ich habe eben auch Zeichen im Befehlsatz die sich nicht mehr über die Tastatur eingeben lassen, wie z.B. die 81 in Hex Acsii Darstellung. Wenn ich da in der Ascii Tabelle nachschaue, dann steht da eben nur ein Fragezeichen in einem schwarzen auf der Spitze stehenden Quadrat, für mich heißt das nicht eingebbar per Tastatur.
Und dafür betreibe ich den ganzen Aufwand ja.
Nimm ein numerisches Eingabefeld. Stell das auf Hex-Darstellung um. Gib dann hier das eine Zeichen in Hexdarstellung ein. Die Zahl kann man dann in einen String umwandeln. Den String kannst du weiterverarbeiten, z.B. verknüpfen mit anderen Strings.
Guckst du Bild.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
habe jetzt mal versucht die Idee umzusetzen (siehe Bild) am Beispiel des Doppelpunktes oder in 3A in HexCode Darstellung, das Eingabefeld habe ich unter Eigenschaften im Type-Feld auf Hexadecimal umgestellt, aber ich hatte keinen Erfolg, er überträgt laut Sniffer das Zeichen als 33 41 und nicht wie beabsichtigt als 3A.
Ich glaube es funktioniert, hatte vergesse einen nachfolgende Übergabestelle auch umzustellen, aber es scheint jetzt mit der im Bild dargestellten Lösung zu funktionieren, umfangreichere Tests müssen aber noch folgen.