IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

comment afficher hex editor


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 267
    Par défaut comment afficher hex editor
    bonjour, je voudrais savoir comment afficher dans listview1 hex editor avec openfiledialog.
    voici mes code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim dialog As New OpenFileDialog
            dialog.Filter = "All files (*.*)|*.*"
            dialog.Title = "Ouvrer Le Fichier"
            If dialog.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = dialog.FileName
                ListView1.Items.Clear()
                ListView1.View = View.Details
                ListView1.Columns.Add("OFFSET", 100, HorizontalAlignment.Center)
                ListView1.Columns.Add("00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F", 350, HorizontalAlignment.Center)
                ListView1.Columns.Add("TEXTE", 200, HorizontalAlignment.Center)
                End If
        End Sub
    pouvezvous m'aider merci.
    voici en image afficher comme hex editor.
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Salut Hacker59,

    Malheureusement ce n'est pas un simple listview qu'il faut utiliser !

    Les éditeurs Hexa sont des contrôles complexes qui sont codés de A à Z afin de prendre en charge la modif d'Offset particulier, l'affichage dynamique selon navigation dans le fichier, sélection de zone et aperçu en temps réel, ...etc...

    Je te conseil de te familiariser avec les contrôles de type : datagridView, Listview, textbox avant de te lancer dans un tel projet.

    PS : la tache pourrait se compliquer si tu souhaites faire un Viewer/Editor car chaque bit devra être stocké sur une ligne du tableau dans une colonne.

    Brefff...voilà un truc pas bien élégant mais pour débuter c'est tout de même plus adapté à ton besoin :

    http://www.pokecommunity.com/showthread.php?t=303158


    A+

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 267
    Par défaut
    bonsoir, j'ai trouver une partie la solution pour afficher mon fichier en hex editor.
    voici mes codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Public Class Form1
        Dim ArrayHold() As Byte
        Dim Index As Integer = 0
        Dim Str As New StringBuilder
        Dim tStr As String = ""
        Dim tempStr As String = ""
        Dim IndexEnd As Integer = 0
        Dim InputString As String = ""
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim dialog As New OpenFileDialog
            dialog.Filter = "All files (*.*)|*.*"
            dialog.Title = "Ouvrer Le Fichier"
            If dialog.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = dialog.FileName
                Dim myStreamReader As StreamReader = Nothing
                myStreamReader = File.OpenText(dialog.FileName)
                InputString = myStreamReader.ReadToEnd()
                ArrayHold = Encoding.Default.GetBytes(InputString)
                Do
                    IndexEnd = Index + 15
                    For x As Integer = Index To IndexEnd
                        If x > UBound(ArrayHold) Then
                            Str.Append("")
                            tempStr = tempStr & ""
                        Else
                            tStr = UCase(Convert.ToString(ArrayHold(x), 16))
                            If tStr.Length < 2 Then tStr = "0" & tStr
                            Str.Append(tStr & "")
                            If ArrayHold(x) < 32 Then
                                tempStr = tempStr & ""
                            Else
                                tempStr = tempStr & Chr(ArrayHold(x)) & ""
                            End If
                        End If
                    Next
                    Str.Append("    " & tempStr & vbCrLf)
                    tempStr = ""
                    Index = Index + 15
                Loop While IndexEnd < UBound(ArrayHold)
                TextBox2.Text = Str.ToString
            End If
        End Sub
    End Class
    voici en image mon projet:

    voici avec hex editor :


    voila, j'ai deux question : 1) quand j'ouvre avec hex editor , il m'affiche par 8C EF 4B 39 F6 AD 82 75 F0 D6 25 C2 2C 17 B2 9C avec mon projet il m'affiche le même résulta.
    2) comment je fait pour afficher bien droit comme hex editor.

    merci

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Il te manque :

    - une variable de stockage afin de séparer distinctement la partie Hexa et Text : Pour ce faire j'ai créé un stringBuilder
    - le groupement par 2 de ta partie "Hexa" ! Ca nécessite un formatage de chaîne :
    Voilà ce qu'on peut utiliser comme StringFormat : "{0,0:X2} "
    - l'ajout de séparateurs dans la partie de droite "Text" : ce caractère devrait faire l'affaire "."c

    ...etc...

    Enfin pour éviter que le chargement de gros fichiers ne gèlent la fenêtre de ton programme, il faudra créer tout ca dans un ThreadUI.


    Voilà ce que je te propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
            Dim ArrayHold() As Byte
            Dim Index As Integer = 0
            Dim Str As New StringBuilder
            Dim tStr As String = ""
            Dim InputString As String = ""
            Private Sub OnFileOpen(sender As Object, e As System.EventArgs)
                Dim dialog As New OpenFileDialog
                dialog.Filter = "All files (*.*)|*.*"
                dialog.Title = "Ouvrer Le Fichier"
                If dialog.ShowDialog = Windows.Forms.DialogResult.OK Then
     
                    Dim myStreamReader As StreamReader = Nothing
                    myStreamReader = File.OpenText(dialog.FileName)
                    InputString = myStreamReader.ReadToEnd()
                    ArrayHold = Encoding.Default.GetBytes(InputString)
     
                    Dim StrbText As New StringBuilder()
                    For x As Integer = 0 To UBound(ArrayHold) - 1 Step 16
                        StrbText.Length = 0
                        Str.Length = 0
                        For index As Integer = 0 To 15
                            If (x + index) > UBound(ArrayHold) - 1 Then
                                Exit For
                            End If
                            tStr = ChrW(ArrayHold(x + index))
                            Str.AppendFormat("{0,0:X2} ", AscW(tStr))
                            If (AscW(tStr) < 32) OrElse (AscW(tStr) > 127) Then
                                tStr = "."c
                            End If
                            StrbText.Append(tStr)
                        Next
                        StrbText.Append(vbCr & vbLf)
                        While Str.Length < 52
                            Str.Append(" ")
                        End While
                        Str.Append(StrbText.ToString())
                        textBox1.Text += Str.ToString()
                    Next
                End If
            End Sub


    A+

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    pour l'affichage bien aligné il faut une police de caractère du type "courrier"
    les 3/4 des polices ont des tailles variables d'un caractères à l'autre, certaines polices ont par contre la même taille pour tous les caractères, permettant l'alignement en colonne
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    pour l'affichage bien aligné il faut une police de caractère du type "courrier"
    les 3/4 des polices ont des tailles variables d'un caractères à l'autre, certaines polices ont par contre la même taille pour tous les caractères, permettant l'alignement en colonne
    Effectivement, les caractères chinois ont cette caractéristique, permettant ainsi un alignement parfait.



Discussions similaires

  1. [web] comment afficher les erreur d'un cgi
    Par chtiboss dans le forum Web
    Réponses: 6
    Dernier message: 24/12/2003, 11h22
  2. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33
  3. [debutant] Comment afficher un integer a l'ecran
    Par Johngame dans le forum DirectX
    Réponses: 1
    Dernier message: 05/06/2003, 20h35
  4. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 00h38
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo