Konvertierung von Hex in String; Overflow Exception

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Wincrash.

    Konvertierung von Hex in String; Overflow Exception

    Hey - wie der Titel schon sagt möchte ich einen
    HexString in einen normalen [Ascii-]String konvertieren - jedoch taucht folgender Fehler auf:

    System.OverflowException wurde nicht behandelt.
    Die arithmetische Operation hat einen Überlauf verursacht.
    "Dividieren Sie nicht durch 0."

    Der hexString lautet "31323035333030303030303030303030303030303034393934" - das Ergebins sollte eigentlich folgendes sein:
    "1205300000000000000004994"

    Zur Konvertierung nutze ich folgende Funktion:

    VB.NET-Quellcode

    1. Function HexToStringW(ByVal strhex As String) As String
    2. Dim b As Byte
    3. Dim s As String = ""
    4. For inttemp As Integer = 0 To strhex.Length - 2 Step 2
    5. b = System.Convert.ToByte(strhex.Substring(inttemp, 2), 16)
    6. s = s & Chr(b)
    7. Next
    8. Return s
    9. End Function

    Könnt ihr mir da helfen?
    Vielen Dank
    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.
    Hat wirklich niemand diesen Fehler bisher gehabt oder eine Lösung dazu gefunden?
    wincrash
    (\_/) Das ist Hase.
    (O.o) Kopiere Hase in deine Signatur
    (> <) und hilf ihm so auf seinem Weg zur Weltherrschaft.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Wincrash“ ()

    Morgen,

    hab das mal funktionfähig gemacht

    VB.NET-Quellcode

    1. Function HexToStringW(ByVal strhex As String) As String
    2. Dim s As New System.Text.StringBuilder(CInt(strhex.Length / 2))
    3. For i As Integer = 0 To strhex.Length - 2 Step 2
    4. s.Append(Chr(Convert.ToByte(strhex.Substring(i, 2), 16)))
    5. Next
    6. Return s.ToString
    7. End Function


    mfG

    Derfuhr

    Edit: Dein Code funzt bei mir.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Derfuhr“ ()