Hex und bin in Richtextbox anzeigen

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Hex und bin in Richtextbox anzeigen

    Hallo zusammen,
    Ich komme hier leider nicht weiter.
    Ich kann ein Hex oder eine bin Datei importieren in eine RIchtextbox nur wird es nicht al richtiger wert ausgegeben.
    Habe da schon etwas gegoogelt aber ohne infos die mir weiter Helfen.
    Kann mir da bitte jemand Helfen?

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Dim openFile1 As New OpenFileDialog()
    4. ' Initialize the OpenFileDialog to look for .bin files.
    5. openFile1.DefaultExt = "*.bin"
    6. openFile1.Filter = "bin Files|*.bin"
    7. ' Determine whether the user selected a file from the OpenFileDialog.
    8. If (openFile1.ShowDialog() = System.Windows.Forms.DialogResult.OK) _
    9. And (openFile1.FileName.Length > 0) Then
    10. ' Load the contents of the file into the RichTextBox.
    11. RichTextBox1.LoadFile(openFile1.FileName, _
    12. RichTextBoxStreamType.PlainText)
    13. End If
    14. End Sub
    15. End Class


    Edit by Manschula: Für Code-Ausschnitte bitte den passenden Tag verwenden --> VB-Tag eingefügt

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

    Okay, also im Hexeditor kommt genau das raus, was du haben willst, in Notepad++ kommt nur Schwachsinn raus. Das bedeutet wohl es handelt sich dabei nicht um Textdateien. Wenn du also die Ansicht von oben haben möchtest musst die Datei Byte für Byte einlesen und diese dann in einen Hex-String konvertieren.
    Ich hab dir hier mal ne kleine Funktion geschrieben, die das macht:

    VB.NET-Quellcode

    1. Private Function GetHexString(ByVal file As String) As String
    2. Dim fi As New FileInfo(file)
    3. Dim hex As New List(Of String)
    4. Using fs = fi.OpenRead
    5. Using br As New BinaryReader(fs)
    6. Do Until fs.Position >= fs.Length
    7. Dim b = br.ReadByte
    8. hex.Add(b.ToString("X").PadLeft(2, "0"c))
    9. Loop
    10. End Using
    11. End Using
    12. Return String.Join(" ", hex)
    13. End Function

    Du übergibst der Methode den Dateipfad und bekommst die Hex-Darstellung zurück.
    Wenn ich das so verwende zeigt er mir genau das an was du haben wolltest:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Function GetHexString(ByVal file As String) As String
    4. Dim fi As New FileInfo(file)
    5. Dim hex As New List(Of String)
    6. Using fs = fi.OpenRead
    7. Using br As New BinaryReader(fs)
    8. Do Until fs.Position >= fs.Length
    9. Dim b = br.ReadByte
    10. hex.Add(b.ToString("X").PadLeft(2, "0"c))
    11. Loop
    12. End Using
    13. End Using
    14. Return String.Join(" ", hex)
    15. End Function
    16. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    17. Using ofd As New OpenFileDialog
    18. If ofd.ShowDialog = DialogResult.OK Then RichTextBox1.Text = GetHexString(ofd.FileName)
    19. End Using
    20. End Sub
    21. End Class
    Habe eben eine eue Form Angelegt ein Button und Richtextbox.Deinen Sode rein kopiert und es kommt nur Müll verstehe das nicht!
    leider komme ich da nicht hin ,versuchte es 2 mal mit einem neuen Projekt.
    Gibts einen anderen weg,kann es sein das ich wo was umstellen mus oder so!?


    Edit by Manschula: Es gibt eine Bearbeiten-Funktion --> Beiträge zusammengefügt

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

    Du musst nichts umstellen, ich hab auch einfach nur einen Button und eine RichTextBox auf die Form gezogen. Du kannst den Code unmöglich richtig verwendet haben, denn es können nur Hex-Paare rauskommen, egal welche Datei du öffnest, du scheinst die Datei aber immer noch als Textdatei zu interpretieren. Bist du sicher, dass du nur die zwei Methoden in deinem Code stehen hast, und zwar genau so wie sie in Post 12 stehen?

    Ich schicke dir mal ein Projekt, bei dem es funktioniert.
    @brembo00: Wahrscheinlich ist Dir nicht bewusst, dass die Hex-Darstellung lediglich eine String-Repräsentation und damit eine andere Darstellung desselben Inhalts ist.
    Das, was Du Binär-Darstellung nennst, ist einfach die Behandlung der Daten selbst als String.
    Allerdings hast Du hier noch die Wahl des Encoding, das die Zuordnung der Daten zu einer Zeichentabelle organisiert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich habe heute den ganzen Vormittag im Netz gelesen,gibt Beispiele nur kommt das bei mir nicht raus!
    Wie gesagt bin ich auch noch sehr sehr frisch und unerfahren in dieser Sprache!
    Heute nach dem Form laden Kann ich keine grünen Hilstext mehr schreiben :(

    Da ich wie gesagt frisch einsteiger bin ,würde ich gerne mit meinem Text weiter machen wenns geht da soweit mitkomme!

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim openFile1 As New OpenFileDialog()

    ' Auwahl der Datei über Openfiledialog .bin files.
    openFile1.DefaultExt = "*.bin"
    openFile1.Filter = "bin Files|*.bin"


    ' Auswahl der Datei über OpenFileDialog.
    If (openFile1.ShowDialog() = System.Windows.Forms.DialogResult.OK) _
    And (openFile1.FileName.Length > 0) Then

    ' läd die gewählte Datei in RichTextBox.
    RichTextBox1.LoadFile(openFile1.FileName, _
    RichTextBoxStreamType.PlainText)

    End If

    End Sub