Announcement

Collapse
No announcement yet.

String in ein Byte Array konvertieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • String in ein Byte Array konvertieren

    Hallo liebe Entwicklergemeinde,

    ich hab eine Frage, habe auch schon die Bordsuche bemüht, auch Beiträge gefunden, jedoch keine Antwort die auf mein Problem passt

    Ich habe ein Programm geschrieben welches Werte aus einer XMl Datei zieht (mittels XMLTextReader) der XMLTextReader gibt mir den Wert dann als String zurück.

    Der Inhalt der Daten sind jedoch Hexadezimale Werte mit denen ich gerne eine CRC Prüfung durchführen will.

    Nun zu meinem Problem. Ich bekomme den String einfach nicht in ein ByteArray.

    Probiert habe ich es schon mit:
    AttributeCRCArray[x++] = Byte::Parse(Value->Substring(i,1));

    soweit so gut, nur immer wenn ein Hexwert (String) kommt der einen Buchstaben beeinhaltet, dann bekomme ich eine Fehlermeldung: Wert befindet sich im falschen Format

    ebenfalls habe ich schon die Funktionen Convert.ToByte probiert, hier bekomme ich jedoch nur den ersten Wert des Strings in Unicode kopiert.

    Ebenfalls habe ich es versucht über die Codierung zu lösen alla:
    ASCIIEncoding^ ascii = gcnew ASCIIEncoding();
    AttributeCRCArray[x++]= ascii->GetBytes(Value);

    leider funktioniert dies auch nicht.

    Mit meinem Latein bin ich nun am Ende. Vielleicht kennt hier jemand eine Funktion wie ich den String in ein Byte bekommen kann.

    Auch das Thema von 2003 habe ich gelesen das hier im Forum ist, jedoch mit

    System::Text::Encoding::GetBytes

    komme ich auch nicht weiter.

    Wichtig dabei ist, dass es eben auch mit Buchstaben funktioniert. Wenn mein Wert AB12 ist, dann brauche ich am Ende auch AB12, da ich sonst keine CRC berechnen kann.

    Vielen Dank schon mal für Antworten.

  • #2
    Du musst einfach den Hexwert in eine Dezimalzahl umwandeln mit
    Code:
    Int32 Test = Int32.Parse("FA", System.Globalization.NumberStyles.HexNumber);
    Das ist zwar jetzt C# sollte aber in managed C++ genauso gehen.

    Dann hast Du eine Integer Variable. Mit der sollte man eigentlich alles anstellen können

    Comment


    • #3
      GetBytes liefert dir einen ByteArray des strings also das was du brauchst. Wenn du dann im folgenden noch Problem mit dem ByteArray hast solltets du beschreiben welche. Denn GetBytes ist das Format des strings egal. Wenn du also die Fehlermeldung "Wert befindet sich im falschen Format" bekommst so von Code denn du uns nicht zeigst.

      Comment


      • #4
        Das mit dem Code ist so ne Sache, da es sich hier um ein Programm handelt das ich für die Firma schreibe. Deswegen kann ich den Code nicht so einfach posten.

        Werde die beschriebenen Sachen gleich mal probieren und mich dann nochmal melden.

        Comment


        • #5
          Vielen Dank Fanderlf, das hat mir sehr geholfen und funktioniert soweit auch total gut. *freu*

          Comment

          Working...
          X