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 :

Jeu questionnaire simple


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Par défaut Jeu questionnaire simple
    Bonjour,

    J'essaie de créer un jeu questionnaire assez simple afin de maitriser plus en profonder la lecture et l'enregistrement sur fichier .txt. Dans mon projet, j'ai 1 formulaire qui contient un TextBox qui devra servir à acceuillir chaques questions contenu dans le fichier data.txt, ci-joint, 4 boutons radio servant à selectionner une réponse elles aussi dans le fichier .txt, et un bouton servant à confirmer le choix.

    Mon problème est : Je ne trouve pas comment bien lire le fichier et Assigner la première entrée dans mon TextBox et les autres entrées qui sont sur la même ligne délimiter par le caractère " : " aux texte des boutons radio.

    pour l'instant, tout ce que j'ai c'est ceci

    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
    Public Class frmQuestion1
      Dim mswFichier As System.IO.StreamWriter
     
      Private Sub frmQuestion1_Load(ByVal sender As Object, _
                                    ByVal e As System.EventArgs) _
                                    Handles Me.Load
      Dim tfpQuestions As New FileIO.TextFieldParser("data.txt", _
                                                      System.Text.Encoding.UTF7)
      tfpQuestions.TextFieldType = FileIO.FieldType.Delimited
      tfpQuestions.SetDelimiters(":")
      Dim strligne As String()
      strligne = tfpQuestions.ReadFields
     
      End Sub
    End Class
    j'ai déja créer avant celui-ci une application plus simple servant à lire des données simples qu ressemblait a ceci :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Public Class frmChargerDonnees
     
      Private Sub btnCharger_Click(ByVal sender As System.Object, _
                                  ByVal e As System.EventArgs) _
                                  Handles btnCharger.Click
        Dim tfpFichierProv As New FileIO.TextFieldParser("provinces.txt", _
                              System.Text.Encoding.UTF7)
        Dim strLigne As String
        cboProvince.Items.Clear()
        Do Until tfpFichierProv.EndOfData
          Try
            strLigne = tfpFichierProv.ReadLine
            cboProvince.Items.Add(strLigne)
            cboProvince.SelectedItem = "Québec"
          Catch ex As FileIO.MalformedLineException
            MessageBox.Show("La Ligne" & ex.Message & _
                            "n'est pas valide et est rejetée")
          End Try
        Loop
        tfpFichierProv.Close()
      End Sub
     
      Private Sub frmChargerDonnees_Load(ByVal sender As Object, _
                                        ByVal e As System.EventArgs) _
                                        Handles Me.Load
        Dim tfpFichierMois As New FileIO.TextFieldParser("NomsMois.txt", _
                                  System.Text.Encoding.UTF7)
        tfpFichierMois.TextFieldType = FileIO.FieldType.Delimited
        tfpFichierMois.SetDelimiters(",")
        Dim strligne As String()
        Do Until tfpFichierMois.EndOfData
          Try
            strligne = tfpFichierMois.ReadFields
            Dim strChamp As String
            For Each strChamp In strligne
              lstMois.Items.Add(strChamp)
            Next
          Catch ex As FileIO.MalformedLineException
            MessageBox.Show("La Ligne" & ex.Message & _
                            "n'est pas valide et est rejetée")
          End Try
        Loop
        tfpFichierMois.Close()
      End Sub
    End Class
    Pourriez-vous me donner quelques pistes s'il vous plait, sans trop me vendre la mèche

    Merci Beaucoup!
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Je te conseille de t'orienter vers un stockage Xml, et pourquoi pas sérialiser/désérialiser celle ci.

    Je vois bien un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <FQuestion>
        <Question>   </Question>
        <Reponse>   </Reponse>
    </FQuestion>

    Le code sera beaucoup moins long et beaucoup plus lisible que le fouilli pour lire un fichier texte correctement, de plus tu pourra facilement ajouter des champs comme un nombre de points associés à la question ou établir des listes de questions

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Par défaut
    Merci beaucoup pour ta réponse, mais mon objectif est vraiment d'utiliser le fichier .txt. Je suis quand même relativement débutant et je n'ai aucun notion d'XML pour l'instant. Je préfère bien maitriser un premier sujet avant de m'attaquer à autre chose!

  4. #4
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Pour la lecture c'est mieux d'utiliser un StreamReader.

    Pour faire ce dont tu as besoin tu peut utiliser un Split.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim monTexte as String = "texte1:texte2:texte3:texte4"
     Dim Data as String() = monTexte.Split(":")
    Data(0) => contient "texte1"
    Data(1) => contient "texte2"
    ect.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Par défaut
    Donc, je pourrais faire quelquechose semblable à

    "Textbox=Data(o)
    BR1=Data(1)
    BR2=Data(2)
    BR3=Data(3)
    BR4=Data(4)"

    c'est bien ça?

  6. #6
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Citation Envoyé par mastorhaxor Voir le message
    Donc, je pourrais faire quelquechose semblable à

    "Textbox=Data(o)
    BR1=Data(1)
    BR2=Data(2)
    BR3=Data(3)
    BR4=Data(4)"

    c'est bien ça?
    Textbox.Text
    BR1.Text
    ect..

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    si tu t'oriente vers des tableaux comme le suggère Jerede, il faudrait déjà en créer un, contenant les lignes (séparateur : retour chariot ou passage à la ligne).
    Ensuite comment penses tu choisir la ligne (question et ses réponses) à afficher dans tes contrôles?

  8. #8
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Je maintiens mon choix du Xml

    Par exemple si t'a plusieurs questions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                XDocument doc = XDocument.Load("monFichierXml");
                XElement root = doc.Root;
                foreach (XElement node in doc.Elements("vQuestion"))
                {
                    node.Element("Question");
                    node.Element("Reponse");
                    node.Element("Points");
                }
    Si tu en as qu'une seule par fichier xml c'est encore plus joli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                XDocument doc = XDocument.Load("monFichierXml");
                XElement vQuestion = doc.Root.Element("VQuestion");
                vQuestion.Element("Question");
                vQuestion.Element("Reponse");
                vQuestion.Element("Points");

Discussions similaires

  1. [MCD] Questionnaire simple
    Par Somesa dans le forum Schéma
    Réponses: 11
    Dernier message: 09/02/2015, 12h00
  2. [jeu] Questionnaire Cuba
    Par r0d dans le forum Politique
    Réponses: 23
    Dernier message: 06/07/2009, 18h38
  3. Petit jeu multijoueur en ligne (commençons simple lol)
    Par Archaoniro dans le forum Langage
    Réponses: 25
    Dernier message: 24/03/2006, 19h31
  4. [Simple] Augmentation des niveaux dans un jeu.
    Par Invité4 dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 03/01/2006, 18h56

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