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 :

Ecrire dans un Byte Array


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut Ecrire dans un Byte Array
    Bonjour,

    J'ai un problème avec la manipulation des bytes, je récupère un message dans d'un tcpclient.getstream.read, voila ce que j'ai :
    http://img16.imageshack.us/i/listview.png/

    Voila ce avec quoi je récupère le message :

    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
     
       Sub EcrireFlux(ByVal p_message As String)
            Dim sendBytes As [Byte]() = Encoding.UTF8.GetBytes(p_message)
            c_flux.Write(sendBytes, 0, sendBytes.Length)
        End Sub
     
     
     
    Function LireFlux(ByVal p_tcpclient As TcpClient, ByVal p_flux As NetworkStream) As String
            Dim l_message As StringBuilder = New StringBuilder()
     
            If p_flux.CanRead Then
                If p_flux.DataAvailable Then
                    Dim bytes(p_tcpclient.ReceiveBufferSize) As Byte
                    p_flux.Read(bytes, 0, CInt(p_tcpclient.ReceiveBufferSize))
                    Dim returndata As String = Encoding.ASCII.GetString(bytes)
                    Return returndata
                End If
                Return "Données non disponible"
            Else
                Return "Flux non disponible"
            End If
     
        End Function
    Comment je peux régler ce problème afin d'avoir uniquement le mot souhaité et non les caractères qui suivent?


    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Une méthode brute serait de tester le code ascii de chaque couple d'octets.

    Une autre (mais là je suis pas sur) serait d'utiliser un binaryreader pour lire le flux sous-jacent.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par vincc Voir le message
    J'ai un problème avec la manipulation des bytes, je récupère un message dans d'un tcpclient.getstream.read, voila ce que j'ai :
    http://img16.imageshack.us/i/listview.png/
    Evite de poster des liens vers des sites d'hébergement d'image, y a plein de gens qui peuvent pas les voir... moi par exemple, imageshack est bloqué par le firewall de mon boulot. Mets plutôt l'image en pièce jointe de ton message

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 82
    Par défaut
    Ok pour imageshack, mais finalement je viens de résoudre le problème..
    Désormais je récupère uniquement ce que je lis dans le flux, assez bête finalement (enfin un peu comme tous les posts que je poste je l'avoue :s ^^)

    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
    Function LireFlux() As String
            If c_flux.CanRead Then
                If c_flux.DataAvailable Then
                    numberOfBytesRead = c_flux.Read(bytes, 0, bytes.Length)
                    Dim returndata As String = Encoding.ASCII.GetString(bytes, 0, numberOfBytesRead)
                    Return returndata
                End If
                Return "Données non disponible"
            Else
                Return "Flux non disponible"
            End If
        End Function
     
        Sub EcrireFlux(ByVal p_message As String)
            Dim sendBytes As [Byte]() = Encoding.UTF8.GetBytes(p_message)
            c_flux.Write(sendBytes, 0, sendBytes.Length)
        End Sub
    Merci

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

Discussions similaires

  1. Ecrire dans un fichier grace à un trigger ?
    Par zigoo dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 29/10/2004, 20h03
  2. [VBS] Ecrire dans les Eventlog avec VBS
    Par Hakkou dans le forum VBScript
    Réponses: 1
    Dernier message: 04/10/2004, 14h50
  3. Réponses: 2
    Dernier message: 08/04/2004, 11h11
  4. Ecrire dans un fichier sans supprimer le reste
    Par koan_sabian dans le forum Linux
    Réponses: 4
    Dernier message: 20/02/2003, 15h44

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