Hexcode Dateien schreiben

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von nick_XxX.

    Hexcode Dateien schreiben

    Hallo,

    ich habe vor ein Programm zu schreiben, dass Hex-Dateien schreiben kann.

    In meinem Programm gebe ich also Zahlen in dezimalschreibweiße ein, drücke einen Button und dann soll er mit das als Hex Datei schreiben

    Ich habe leider keine Idee, wie ich das schaffen könnte.
    Kann mir vielleicht jemand von euch helfen? Wäre sehr nett

    MfG

    BlackGiant
    Ja, dann habe ich die Dezimalzahl als Hexadezimalzahl in einer normalen Datei.
    Wenn ich aber jetzt die Datei mit einem Hex-Programm (z.b. Hex Workshop) öffne ist es nicht richtig.(siehe schaubild)
    In diesem Beispiel hier habe ich die Decimalzahl 199 in Hexadezimal konvertiert und gespeichert, allerdings speichert es es als normale Datei.

    Hallo,

    erstmal vielen Danke, dass du mir versuchst zu helfen :)

    Ich habe nun folgenden Code gefunden, allerdings gibt dieser mir nicht den richtigen Hex-code aus.

    VB.NET-Quellcode

    1. Sub SaveRTB1(ByVal AusgabeDatei As String)
    2. ' Anzahl der Bytes berechnen
    3. Dim len As Integer = RichTextBox1.Text.Length \ 2
    4. Using fs As New FileStream(AusgabeDatei, FileMode.Create, FileAccess.Write)
    5. Using writer As New BinaryWriter(fs)
    6. ' Text schrittweise in Bytes umwandeln und speichern.
    7. For i As Integer = 0 To len - 1
    8. Dim b As Byte = Byte.Parse(RichTextBox1.Text.Substring(i * 2, 2), Globalization.NumberStyles.HexNumber)
    9. writer.Write(b)
    10. Next
    11. writer.Close()
    12. End Using
    13. End Using
    14. End Sub
    15. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    16. SaveRTB1("C:\Hex.abc")
    17. End Sub

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

    Wie überprüfst du es, ob es richtig oder falsch ist?
    Also der Code funtzt bei mir schonmal und komische Zeichen kommen am Ende auch raus xD
    Aber wüsste jetzt nicht, wie ich das überprüfen kann (außer mit rückgängig umwandeln)
    Tja, aber ich denke mal, dass das nicht so einfach ist. Weil wenn du die Datei öffnest, wird sie nicht so gelesen/angezeigt, dass du die Hexadezimale Zahl so siehst, wie in dem Umrechner.
    Wie sieht der Inhalt bei dir aus?
    Bei mir kommt sowas raus:

    Quellcode

    1. 5G†UEG„ss

    sieht doch gut aus ^^
    Hallo,

    ich habe mir nun die Sample-Codes auf MSDN angeschaut.
    Allerdings verstehe ich sie nicht wirklich...

    Ist das alles denn so umständlich?

    //Edit:
    Ich glaube ich habs soweit. Ich schau mal ob ichs jetzt hingrieg :) Thx an alle.
    ich hatte des vor ner ewigkeit mal so gelöst:

    VB.NET-Quellcode

    1. a = Val(txtVar1.Text)
    2. b = 16
    3. i = 0
    4. Do While (a > 0)
    5. temp = (a Mod b)
    6. If temp > 9 Then
    7. If temp = 10 Then
    8. temp = "a"
    9. End If
    10. If temp = 11 Then
    11. temp = "b"
    12. End If
    13. If temp = 12 Then
    14. temp = "c"
    15. End If
    16. If temp = 13 Then
    17. temp = "d"
    18. End If
    19. If temp = 14 Then
    20. temp = "e"
    21. End If
    22. If temp = 15 Then
    23. temp = "f"
    24. End If
    25. End If
    26. erg3 &= temp
    27. m = a \ b
    28. a = m
    29. i += 1
    30. count += 1
    31. Loop
    32. erg = StrReverse(erg3)



    Ist zwar bestimmt nicht die eleganteste Lösung aber es funktioniert...
    die taschenrechner-gui war mein erstes vb-programm... :)

    gruss nick_XxX
    Öhmm, wenn ich das bei dir jetzt richtig sehe, ist das eine Formel um eine Dezimalzahl zur Hexadezimalzahl zu convertieren.

    Das geht viel einfacher:

    VB.NET-Quellcode

    1. TextBox2.Text = Hex(TextBox1.Text)


    Das macht: Konvertiert den Text aus TextBox1 in Hex und schreibts in TextBox2..

    BlackGiant schrieb:

    Öhmm, wenn ich das bei dir jetzt richtig sehe, ist das eine Formel um eine Dezimalzahl zur Hexadezimalzahl zu convertieren.

    Das geht viel einfacher:

    VB.NET-Quellcode

    1. TextBox2.Text = Hex(TextBox1.Text)


    Das macht: Konvertiert den Text aus TextBox1 in Hex und schreibts in TextBox2..
    ja, ich weiß dass es einfacher geht, aber ich stehe drauf zu wissen wie es geht...
    bzw. halt den algorithmus selber zu schreiben... :)