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 string


Sujet :

VB.NET

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut [VB.NET] Extraire infos string
    salut tout le monde

    Voila j'ai un petit probleme qui doit etre facile a resoudre mais la je ne voit pas comment, mon programme recupere des infos sur les regles d'un serveurs,je recupere comme string ceci:
    mp_teamplay0mp_fraglimit0mp_falldamage1mp_weaponstay0mp_forcerespawn1mp_footsteps1mp_flashlight0
    Il faut que je separe les regles, je n'ais pas trop d'idée pour le faire ^^.Merci @+

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    si en fin de compte tu souhaites obtenir la liste suivante:
    teamplay0
    fraglimit0
    falldamage1
    weaponstay0
    forcerespawn1
    footsteps1
    flashlight0
    Il te suffit d'utiliser la fonction Split de l'espace de nomsMicrosoft.VisualBasic
    Par exemple
    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
     
    Option Explicit On
    Option Strict On
     
    Imports Microsoft.VisualBasic
    Imports System
     
    '...
    Private Function ExtractInfos(ByVal msgInfos As String) As String()
      return Split(msgInfos, "mp_")
    End Sub
    Private Sub DisplayInfos()
      Dim infos() As String
      infos = ExtractInfos("mp_teamplay0mp_fraglimit0mp_falldamage1mp_weaponstay0mp_forcerespawn1mp_footsteps1mp_flashlight0")
      Dim info As String
      For Each info In infos 
        Console.WriteLine(info)
      Next
      Console.Read()
    End Sub
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    merci beaucoup mais le probleme avec split c'est :
    1er probleme : j'aimerais garder le mp_
    2eme probleme : il n'y a pas que des mp_ mais aussi des sv_ dans la meme string

    Sinon mon probleme vient peut-etre de plus haut en faite je recois un tableau de byte() et apres je le convertit en tableau de char():

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'On recoie la reponse
            ReceiveData = Sck.Receive(RemoteEndPoint)
            'On Ferme le socket
            Sck.Close()
            'DEBUG
            ReDim result(ReceiveData.Length)
            result = Decoder.GetString(ReceiveData, 0, ReceiveData.Length)
    Si au lieu de mettre dans un tableau de char je met dans une string je n'ai que 4caractere bizarre,surment un probleme d'encodage.Donc voila je suis entrain de chercher,si tu veux que je tenvoie la source complete dit le

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    il faudrait surtout que je sache le resultat final que tu veux obtenir
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    Ben sa serait un tableau de string contenant toutes les regles du style:

    tableau(0) = mp_teamplay0
    tableau(1) = mp_fraglimit0

    Ps:Normalement dans le tableau de byte() que je recois les valeurs sont separer par le char(0).

    Quelque infos:
    Reply format
    The rules response has two sections, the initial header:

    Type byte Should be equal to 'E' (0x45)
    Num Rules short The number of rules reported in this response


    Then for each rule the following fields are sent:

    Rule Name string The name of the rule
    Rule Value string The rule's value

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Il me semble que tu pourrais peut être faire l'equivalent d'un split mais directement à partir du tableau de chars en decoupant sur le char(0) :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    Le tableau de char n'a pas de proprieter split

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    C'est bon je croit avoir reussi je te tient au courant dans 10min

    Edit: Voila je viens de reussir avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resultat = Decoder.GetString(ReceiveData, 7, ReceiveData.Length - 8).Split(ChrW(0))
    Mais j'ai un deuieme probleme,enfaite sa me retourne un tableau comme ceci:

    tableau(0) = mp_flashlight <-- le nom de la regle
    tableau(1) = 0 <-- sa valeur

    J'aimerais que le nom et la valeur soit dans la meme string comme ceci par exemple:

    tableau(0) = mp_flashlight0


    merci en tout cas de ton aide precieuse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Essayes ceci , j'ai pas eu le temps de tester
    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
     
    Private Function GetInfos(ByVal ReceiveData() As Byte) As String()
      Dim isValue As Boolean = False
      Dim index As Integer = 0
      Dim result() As String
      Dim s As String
      Dim temp() As String
     
      temp = Decoder.GetString(ReceiveData, 7, ReceiveData.Length - 8).Split(ChrW(0))
      result = New String((Ctype(temp.Length/2, Integer)) - 1){}
     
      For Each s In temp
         If isValue Then
            result(index) &= s
            index += 1
         Else :  result(index) = s
         End If
         isValue = Not isValue
      Next
     
      Return result
    End Function
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    Marche super bien
    Tu es un genie

    Par contre je n'ai pas compris comment marchait le boleen isValue


    En tout cas merci beaucoup de ton aide encore une fois et je te souhaite une bonne soirée.

    Ps: Je risque d'avoir encore besoin de toi bientot lool.


    Bye

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    j'avais juste besoin d'un 'interrupteur' qui me permette quand c'est un champ d'ajouter une valeur au tableau result sans incrementer l'index, et quand c'est une valeur de l'ajouter à la ligne en cours puis d'incrementer l'index.
    donc j'alterne false-true-false-..... champ-valeur-champ-...etc...
    ok tu piges :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    Ok c'est bon j'ai compri ^^


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

Discussions similaires

  1. [C++.Net] Conversion de String en char
    Par tunisienne84 dans le forum MFC
    Réponses: 3
    Dernier message: 27/04/2006, 16h41
  2. [VB.NET] Recherche Info dans Active Directory
    Par Vlat dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/12/2005, 15h29
  3. [VB.NET] extraire tt les controls prensents dans une form.
    Par Splash dans le forum Windows Forms
    Réponses: 7
    Dernier message: 21/12/2005, 19h12
  4. [VB.NET] Extraire infos d'un tableau de byte()
    Par guillaume1998 dans le forum VB.NET
    Réponses: 4
    Dernier message: 09/11/2005, 08h28
  5. [VB.NET] StringBuilder Vs String.Format
    Par maitrebn dans le forum Windows Forms
    Réponses: 6
    Dernier message: 19/10/2004, 18h58

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