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 :

[VB.NET] Extraire infos d'un tableau de byte()


Sujet :

VB.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Par défaut [VB.NET] Extraire infos d'un tableau de byte()
    Bonjour tout le monde,voila j'ai encore besoin de vous lool:
    Je recois un tableau de byte() contenant des informations sur des joueurs d'un serveur, le tableau est constituer comme ceci:
    Un entete contenant :
    -byte Should be equal to 'D' (0x44)
    -byte The number of players reported in this response

    Ensuite pour chaque joueur est retourné:
    -L'index du jouer en Byte
    -Nom du joueur en string
    -Nombre de kill du joueur en long
    -Temps de connection en float

    Je reussis à extraire une partie du nom du joueur ^^ (il y a des caractere bizarre devant le nom)ainsi que ses kill voici le code utiliser il est pas terrible mais bon :

    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
    Function ParsePlayer(ByVal receivedata() As Byte)
            Dim index As Integer = 6
            Dim phase As Integer = 1
            Dim decoder As New ASCIIEncoding
     
            For index = 6 To receivedata.Length
                If phase = 1 Then
                    MessageBox.Show(Convert.ToInt32(receivedata(index)))
                    phase = 2
                    index = index + 1
                End If
                If phase = 2 Then
                    MessageBox.Show(decoder.GetString(receivedata, index, getNextIndex(receivedata, index) - index))
                    phase = 3
                    index = index + getNextIndex(receivedata, index) - index
                End If
                If phase = 3 Then
                    MessageBox.Show(Convert.ToUInt32(receivedata(index)))
                    phase = 4
                    index = index + 1
                End If
                If phase = 4 Then
                    MessageBox.Show(Convert.ToChar(receivedata(index)))
                    phase = 1
                    index = index + 1
                End If
            Next
            Return TAB()
    A noter que jutiliser des messagebox pour mieux visualiser mais apres jutiliserai un tableau pour contenir tout ces infos.

    Merci beaucoup

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Par défaut
    personne ne peut m'aider?

  3. #3
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    salut guillaume1998
    envoie moi (mon email est dans mon profil) un zip d'exemple de RecieveData que tu reçois et decrit moi precisement ce que tu veux au final obtenir, dès que j'aurai un teu de temps je me pencherai la dessus

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Par défaut
    C'est envoyer

    J'ai effectuer des modification j'arrive maitenant a extraire l'index du joueur et le nom correctement il ne reste plus que le temps de connection.

    Modif du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If phase = 4 Then
                    MessageBox.Show(Convert.ToString(receivedata(index)))
                    phase = 1
                    index = index + 6
                End If

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Par défaut
    C'est bon je viens de reussir je suis super content d'y etre arriver
    Voici le code pour le temps de connection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Array.Copy(receivedata, index + 3, ByteArray, 0, 4)
    Dim times As New TimeSpan(0, 0, BitConverter.ToSingle(ByteArray, 0))
    MessageBox.Show(times.Hours & "h " & times.Minutes & "min " & times.Seconds & "sec")
    Merci quand meme neguib

    Aller bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Extraire valeur max d'un tableau
    Par grand_prophete dans le forum Windows Forms
    Réponses: 9
    Dernier message: 29/03/2011, 17h37
  2. [VB.NET] Extraire infos string
    Par guillaume1998 dans le forum VB.NET
    Réponses: 11
    Dernier message: 06/11/2005, 21h02
  3. [VB.NET] - affichage dynamique dans un tableau
    Par karibouxe dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/06/2005, 15h07
  4. Réponses: 1
    Dernier message: 09/05/2005, 14h19
  5. [VB.NET] Tableau de bytes Lecture/Ecriture
    Par BenoitM dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/04/2005, 09h51

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