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 :

Recherche dans Structure


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Recherche dans Structure
    Bonjour, ce que je veux faire est assez compliqué, peut être trop pour mon niveau ...
    Je vous explique :

    J'ai une structure qui s'appelle "Discussion" :

    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
        Structure Discussion
            Dim Question As String
            Dim Reponse As String
            Dim Suite As Discussion()
     
            Sub New(ByVal Question_Valeur As String, ByVal Reponse_Valeur As String, ByVal Suite_Valeur As Discussion())
                Question = Question_Valeur
                Reponse = Reponse_Valeur
                Suite = Suite_Valeur
            End Sub
     
            Sub New(ByVal Question_Valeur As String, ByVal Reponse_Valeur As String)
                Question = Question_Valeur
                Reponse = Reponse_Valeur
                Suite = Nothing
            End Sub
     
            Sub New(ByVal Suite_Valeur As Discussion())
                Question = Nothing
                Reponse = Nothing
                Suite = Suite_Valeur
            End Sub
        End Structure
    Voilà un peu à quoi peut ressembler une utilisation de la structure :

    Décomposé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Dim Noeud2_Question1 As Discussion = New Discussion("Tes parents vont bien ?", "Oui, très bien :D")
            Dim Noeud2_Question2 As Discussion = New Discussion("Ton frère va bien ?", "Non, il est mort ...")
     
            Dim Noeud2_Question3 As Discussion = New Discussion("Ça farte mec ?", "Ouaich")
            Dim Noeud2_Question4 As Discussion = New Discussion("Tu veux de la chite ?", "Ouai, raboule :P")
     
            Dim Noeud1_Question1 As Discussion = New Discussion("Salut, ça va ?", "Oui, très bien et toi ?", {Noeud2_Question1, Noeud2_Question2})
            Dim Noeud1_Question2 As Discussion = New Discussion("Yo !", "Yo toi aussi ^^", {Noeud2_Question3, Noeud2_Question4})
     
            Dim Total As Discussion = New Discussion({Noeud1_Question1, Noeud1_Question2})
    Regroupé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Dim Total As Discussion = New Discussion({ _
                                                     New Discussion("Salut, ça va ?", "Oui, très bien et toi ?", { _
                                                                    New Discussion("Tes parents vont bien ?", "Oui, très bien :D"), _
                                                                    New Discussion("Ton frere va bien ?", "Non, il est mort ...")}), _
                                                     New Discussion("Yo !", "Yo toi aussi ^^", { _
                                                                    New Discussion("Ca farte mec ?", "Ouaich"), _
                                                                    New Discussion("Tu veux de la chite ?", "Ouai, raboule :P")})})
    Mon but est de créer une fonction comme celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Function GetReponse(ByVal Question As String, ByVal Final As Discussion) As String
            Dim Reponse As String = Nothing
     
            For Each Discussion As Discussion In Final.Suite
                If (Discussion.Question = Question) Then
                    Reponse = Discussion.Reponse
                End If
                ' L'ennui, c'est qu'ici, on ne va qu'au premier nœud ...
                ' Il faudrait tous les analyser
            Next
     
            Return Reponse
        End Function
    Vous l'aurez compris, j'essaye d’analyser tous les nœud pour récupérer la réponse si la question envoyé en argument correspond ...

    Un petit exemple d'utilisation de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetReponse("Ca farte mec ?", Total)
    Dans ce cas là, la fonction doit nous retourner le string : "Ouaich".

    Je pense que c'est assez claire ...
    Malheureusement, je ne trouve pas vraiment les mots pour expliquer mon problème ...
    J’espère que le code suffira ...
    En vous remerciant de votre futur aide
    Dernière modification par Invité ; 10/09/2012 à 18h51.

  2. #2
    Invité
    Invité(e)
    Par défaut

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 201
    Par défaut
    Citation Envoyé par Patak Voir le message
    Lire du code est pas pationnant si au moins tu pouvais déjà expliquer en français ce que tu veux faire se serait plus pratique

    Sinon il suffit de faire une fonction récursive dans ta classe discution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Function GetReponse(ByVal Question As String) As String
                If (Me.Question = Question) Then
                    Return Me.Reponse
                Else 
                Me.Suite.GetResponse(Question)
                End If
     
            Return Nothing
        End Function

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 201
    Par défaut
    hummm discution est un Array?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Function GetReponse(ByVal Question As String) As String
               Dim reponse As string
     
                If (Me.Question = Question) Then
                    Return Me.Reponse
                Else 
                    For Each discu As Discution in Me.Suite
                           Response = discu.GetResponse(Question)
                           if (Response<>Nothing) Then Return Reponse
                     Next
                End If
            Return Nothing
        End Function

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse, je vais voire ça de plus près

    Sinon, oui, la valeur Suite est un array.

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

Discussions similaires

  1. recherche dans une structure
    Par coco.cohen dans le forum C
    Réponses: 1
    Dernier message: 22/11/2007, 20h08
  2. Recherche dans une Structure d'éléments semblables
    Par bernard6 dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/07/2007, 14h28
  3. Recherche dans un tableau structuré
    Par zemeilleurofgreg dans le forum Langage
    Réponses: 10
    Dernier message: 12/07/2007, 12h02
  4. Recherche dans une structure XML::Simple
    Par nicolargo dans le forum Modules
    Réponses: 1
    Dernier message: 04/09/2006, 19h17
  5. rechercher de point dans structure
    Par cool17 dans le forum C
    Réponses: 6
    Dernier message: 13/04/2006, 00h19

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