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 :

Quelle commande pour simplifier le code


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Quelle commande pour simplifier le code
    Bonjour,

    Voila, je recupere des informations placé dans un fichier.
    Le probleme s'est que par moment je vais en avoir dix.
    Y aurait une commande pour remplacer ce qu'il y a ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ISME = Hex(MonFichierBinaire(0)) & Hex(MonFichierBinaire(1)) & Hex(MonFichierBinaire(2)) & Hex(MonFichierBinaire(3))
     
     Key01 = Hex(MonFichierBinaire(&HA8C)) & Hex(MonFichierBinaire(&HA8D)) & Hex(MonFichierBinaire(&HA8E)) & Hex(MonFichierBinaire(&HA8F))
     Key02 = Hex(MonFichierBinaire(&HA90)) & Hex(MonFichierBinaire(&HA91)) & Hex(MonFichierBinaire(&HA92)) & Hex(MonFichierBinaire(&HA93))
     Key03 = Hex(MonFichierBinaire(&HA94)) & Hex(MonFichierBinaire(&HA95)) & Hex(MonFichierBinaire(&HA96)) & Hex(MonFichierBinaire(&HA97))
    J'ai beaucoup de variable a récupéré comme sa.

    Merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu mets tous tes index dans une collection que tu parcours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim indexes as new list(of integer)
    indexes.add(80)
    indexes.add(132)
    ' ...
     
    dim k as string = "" 
    for each i in indexes
     k &= Hex(MonFichierBinaire(i))
    next
    &h permettant juste de traduire des nombres en hexa vers des nombre en binaire tu devrais pouvoir t'en sortir
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci.

    J'ai trouve. J'ai crée une function :

    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
     
     
     Friend Function readInBinary(ByVal dump As Byte(), ByVal position As Integer, ByVal nombre As Integer) As String 'Outil de recuperation de donnée dans un dump. Les données ne peuvent que se suivre les un deriere les autres.
            'dump = le fichier binaire ou l'on recupere les informations
            'position = la position choisi du curseur dans le dump
            'nombre = le nombre de valeur a recupere
     
            Dim buffer As String = ""
            Dim p As Integer = position
            Dim n As Integer = nombre
     
            For i = 0 To n
                buffer = buffer & dump(p).ToString("X2")
                p = p + 1
            Next
     
            Return buffer
        End Function
    par contre j'ai un autre probleme avec ma function checksum qui est :

    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
     
     
     Friend Function cks8Hex(data As String) ' Outil de calcul de checksum d'une Hex sur 8 bit 
            Dim ConvertHexToStr As New ClassOutil
            Dim Str = ConvertHexToStr.HexToString(data)
     
            Dim CRC As Long, X As Integer
     
            For X = 1 To Len(Str)
                CRC = CRC + Asc(Mid(Str, X, 1))
            Next X
     
            cks8Hex = Chr(CRC Mod 256)
            Dim array() As Byte = System.Text.Encoding.ASCII.GetBytes(cks8Hex)
            Return array(0).ToString("X2")
        End Function
    Le checksum de : 2084C5E96FB925E668338A9558F83E5940E9556FB684AA5B50B4EFEE5EFC087112D3182077561FF0 devrait me retourner FF or il me retourne 3F.
    Pour toutes les autres chaines que je verifie je n'ai pas de probleme ..........

    La function HexToString au cas ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Friend Function HexToString(ByVal hex As String) As String  ' Convertiseur Hexa en String(ASCII)
            Dim text As New System.Text.StringBuilder(hex.Length \ 2)
            For i As Integer = 0 To hex.Length - 2 Step 2
                text.Append(Chr(Convert.ToByte(hex.Substring(i, 2), 16)))
            Next
            Return text.ToString
        End Function
    Merci

    Il semblerait que cela vienne de ma function checksum.

    Car en fait s'est une coïncidence qu'elle marche avec mes 3 trames que je teste car tout les autre ne fonctionne pas.
    Donc si quelqu'un pouvait m'aider.
    Il s'agit d'un checksum 8 qui est utilise dans HxD editor.

    Merci

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Voila la formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Dim file8 As Byte = fichierBinairePrincipal(0) '+ fichierBinairePrincipal(1) + fichierBinairePrincipal(2) + fichierBinairePrincipal(3)
     
            file8 = file8 + fichierBinairePrincipal(1)
            TextBox2.Text = (file8 Mod 256).ToString("X2")
    En plus claire :

    file = 123, 45, 253, 165, 233
    Sum_of_all_bytes(file) = 123 + 45 + 253 + 165 + 233 = 819
    Checksum-8(file) = Sum_of_all_bytes(file) mod 2^8 = 819 mod 256 = 51

    Si quelqu'un pouvait m'aider à modifier la mienne pour pouvoir effectuer celle du haut merci

Discussions similaires

  1. [Audit] Quelle méthode pour auditer un code source ?
    Par EvilAngel dans le forum Qualité
    Réponses: 11
    Dernier message: 16/05/2011, 12h52
  2. [E-00] Utilisation d'un auxilliaire pour simplifier le code
    Par anyah dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 21/11/2008, 17h31
  3. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15
  4. Réponses: 3
    Dernier message: 23/05/2007, 23h52
  5. Réponses: 3
    Dernier message: 22/04/2006, 06h05

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