textbox-Eingabe als Hex Wert interpretieren



  • Hi,

    ich habe folgendes Problem, ich möchte in einem Textfeld einen Hex-Wert eingeben und diese dann auch als Hex-Wert interpretieren.

    Wenn ich versuche meinen String bzw. die Zeichen nach Hex zu konvertieren bekomme ich die Hex-Werte der einzelnen Zeichen, ich möchte aber, da die Eingabe schon Hex ist, die Zeichen nicht umwandeln sondern nur Hex-Werte interpretieren.

    Gibts hierfür passende Methoden oder muss ich mir da selbst was überlegen?

    Danke schon mal

    Gruß Tobi



  • Es gibt keine Hex-Werte.
    Es gibt nur "Strings" und "Zahlen". Wie Du eine Zahl interpretiert hängt von Deinem Verständniss der Zahlen ab, hat aber mit dem Programm nix zu tun.



  • ja das is klar.

    Ich formulier mein Problem nochmal ein bisschen konkreter.

    Ich möchte in meiner Textbox z.B. "a" eingeben und dieses Zeichen dann über einen Networkstream per TCP an meine Hardware schicken.
    Soweit ist das auch kein Problem:

    if ( stream->CanWrite )
    			{
    				WriteBuffer = Encoding::ASCII->GetBytes( msg );
    				stream->BeginWrite( myWriteBuffer, 0, myWriteBuffer->Length, gcnew AsyncCallback( &TClient::myWriteCallBack ), stream );
    			}
    

    Das ganze wird dann asynchron verschickt und kommt wieder als "a" an der Hardware an...
    Im WriteBuffer steht dann z.B. 0x61, wenn ich mir die Werte als hexadezimal Werte interpretieren lasse.

    Jetzt möchte ich aber nicht "a" sonder gleich 61 in meine Textbox eingeben, da die Kommandos der HW nur als "Hex" in der Doku stehen.

    Wenn ich jetzt 61 eingebe seht aber 3631 in meinem Buffer, da er die Eingabe als ASCII zeichen interpretiert.

    Wie bekomme ich es hin, dass die Wert nicht als ASCII Zeichen sondern direkt als Zahl interpretiert werden?



  • int zahl = int::Parse(msg);
    writeBuffer = BitConverter::GetBytes(zahl);
    


  • In der MSDN Lib habe ich

    void Page_Load(object sender, EventArgs e)
    {
        TextBox1.Numeric = true; 
    }
    

    für C# gefunden... allerdings biete mir mein IntelliSense diese Eigenschaft für meine Textbox nicht an.



  • Tobias1111 schrieb:

    void Page_Load(object sender, EventArgs e) {     TextBox1.Numeric = true; }
    

    für C# gefunden... allerdings biete mir mein IntelliSense diese Eigenschaft für meine Textbox nicht an.

    Du hast in der falschen Hilfe nachgeschaut...(System.Web.UI.MobileControls) du machst aber Windows.Forms....





  • int zahl = int::Parse(msg);
    writeBuffer = BitConverter::GetBytes(zahl);
    

    sowas in die Richtung wäre genau das was ich brauche... allerdings wird meine Eingabe hier als Dezimalzahl interpretiert.

    Ich gebe 61 ein, in writeBuffer landet 61(dezimal) = 0x3D.
    Versenden möchte ich allerdings 0x61



  • int zahl = Convert::ToInt32(msg, 16);
    


  • Ich merke die .NET-Klassenbibliothek bietet noch viele mir unbekannte Möglichkeiten 🙄

    Hatte mir zwar auch schon die verschiedenen Convert-Methoden angeschaut, aber bei der entsrpechenden wohl nicht ganz bis zum Ende gelesen.

    Danke für die Hilfe

    Gruß



  • Hallo, ich habe in meinem Programm einige Einstellungen die man wählen kann. Jedoch sind die bei Neustart des Programms wieder verflogen 😃 . Meine Frage:
    Wie kann mein Programm eine Config Datei (.cfg) zeilenweise auslesen?
    z.B in der Config steht lalala = true; oder int zahl1; 😕



  • huch sry bin ja wo ganz falsch drinne sry bitte löchen 😞


Anmelden zum Antworten