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 :

Demande d'aide pour codage sous VB Express


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Demande d'aide pour codage sous VB Express
    Bonjour,

    Je développe une application pour gerer des pronos de football.
    Pour VB Express je rechercherai de l'aide pour un codage.

    J'ai une listbox et une textbox.
    Dans ma listbox j'ai plusieurs choix: journée1, journée2 etc...

    Je souhaiterai afficher dans la textbox ce que je sélectionne dans la listbox

    Sachant que:

    Journée1 =
    équipeA-équipeB
    équipeC-équipeD
    équipeE-équipeF
    etc...

    Si on sélectionne donc "journée1" on devra voir dans la textbox les 10 matchs prévus pour cette journée : équipeA-équipeB etc.....

    Est-ce réalisable ? Par avance merci pour votre aide.

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par jessy2010 Voir le message
    Bonjour,

    Je développe une application pour gerer des pronos de football.
    Pour VB Express je rechercherai de l'aide pour un codage.

    J'ai une listbox et une textbox.
    Dans ma listbox j'ai plusieurs choix: journée1, journée2 etc...

    Je souhaiterai afficher dans la textbox ce que je sélectionne dans la listbox

    Sachant que:

    Journée1 =
    équipeA-équipeB
    équipeC-équipeD
    équipeE-équipeF
    etc...

    Si on sélectionne donc "journée1" on devra voir dans la textbox les 10 matchs prévus pour cette journée : équipeA-équipeB etc.....

    Est-ce réalisable ? Par avance merci pour votre aide.
    C'est réalisable, mais la textbox n'est peut-être pas la plus adaptée pour ça ... (Multiline + gestion des retour chariots + développement de méthodes de travail sur chaîne de caractère etc)
    Pourquoi pas un contrôle plus adapté au format Liste ? (2ème listbox, listview mode détail, DataGridView épuré, etc) Le choix du contrôle dépendra du fonctionnement que tu as en tête pour ton programme.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Salut _Ez3kiel,

    Merci pour ta réponse.
    Comme c'est tout nouveau pour moi, j'avoue que j'ai un peu de soucis à ce stade de mon apprentissage du VB, néanmoins je suis parvenu au résultat escompté.

    Ce qui me dérange c'est que cela ne m'a pas l'air "saint" et "dans les règles de l'art" la méthode employée.

    Voici le résultat:


    Et voici le codage utilisé, existe-il un codage en bonne et due forme pour faire la même chose ?

    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
    46
    47
    48
    49
     Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
     
            Dim selectedIndex As String
            selectedIndex = ComboBox1.SelectedIndex
            Dim selectedItem As Object
            selectedItem = ComboBox1.SelectedItem
            TextBox1.Text = ComboBox1.SelectedItem
     
        End Sub
     
     
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
            If Me.TextBox1.Text = "" Then
     
                MsgBox("Veuillez selectionner une journée !", MsgBoxStyle.Critical + vbOKOnly, "Erreur")
            Else
     
                TextBox2.Text = "."
     
            End If
        End Sub
     
     
     
    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
     
            Dim SR1 As New StreamReader("C:\Users\PC\Desktop\1.txt")
     
            If TextBox1.Text = "journee1" Then
     
                TextBox2.Text = SR1.ReadToEnd
     
                SR1.Close()
     
            End If
     
            Dim SR2 As New StreamReader("C:\Users\PC\Desktop\2.txt")
     
            If TextBox1.Text = "journee2" Then
     
                TextBox2.Text = SR2.ReadToEnd
     
                SR2.Close()
     
            End If
     
     
        End Sub
    Par contre avec la dernière partie du codage je galère car il y a au total 39 journées, que faut-il faire pour alléger le code afin de "charger" le fichier demandé ?
    Merci pour l'éventuelle aide.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Citation Envoyé par jessy2010 Voir le message
    Par contre avec la dernière partie du codage je galère car il y a au total 39 journées, que faut-il faire pour alléger le code afin de "charger" le fichier demandé ?
    En utilisant un dictionnaire, qui, pour une clé te donne une valeur corespondante (la clé = la journée ; la valeur = le nom du fichier)
    Déclare le dictionnaire en variable de la form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Private dicoJoursFichiers As Dictionary(Of String, String) = New Dictionary(Of String, String)
    Dans le load tu crées les associations jours - fichiers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            For i As Integer = 1 To 39
                dicoJoursFichiers.Add("journee" & i.ToString, "C:\Users\PC\Desktop\" & i.ToString & ".txt")
            Next
            '...
    Utilisation du dico au changement de jour (en supposant que TextBox1 reçoit la journée en info sur clic dans la combo des journées - sinon direct sur clic dans combo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
             Dim SR As New IO.StreamReader(dicoJoursFichiers(TextBox1.Text))
            TextBox2.Text = SR.ReadToEnd
            SR.Close()
    End Sub

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour

    Un tout grand merci, et le tout en quelques lignes seulement.

    J'ai deux fichiers text dans deux dossiers distinct de l'application comme ceci:


    Dans le fichier text1:

    1
    2
    N
    1


    Dans le fichier text2:

    N
    2
    1
    1

    Je dois comparer ces deux fichiers afin de detreminer s'il y a des caractères (en commun).
    Si la ligne1 du fichier2 = ligne 1 du fichier1 alors le résultat est égal à 1 (ce 1 sera écrit dans un fichier text "resultat")

    Dans l'exemple ci-dessus dans le fichier nommé resultat sera écrit 2

    Comment puis-je procéder ?
    Après recherches j'ai tenté pas mal de chose, mais pour ce cas de figure je désespère.

    Merci pour votre aide.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Pour faire basique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Function resultat(ByVal FichierPronostic As String, ByVal FichierMatch As String) As Integer
            Dim pronostic As String() = File.ReadAllLines(FichierPronostic)
            Dim match As String() = File.ReadAllLines(FichierMatch)
            Dim NbEgalite As Integer = 0
            For i As Integer = 0 To pronostic.Count - 1
                If pronostic(i) = match(i) Then NbEgalite += 1
            Next
            Return NbEgalite
        End Function
     
        Private Sub btnCompareFic_Click(sender As System.Object, e As System.EventArgs) Handles btnCompareFic.Click
            MessageBox.Show(resultat("D:\data\fichiers\pronostic.txt", "D:\data\fichiers\match.txt").ToString)
        End Sub

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour à tous,

    Merci rv26t pour ta réponse précédente.
    J'ai donc "adapté" ce code pour qu'il génère un fichier (celui du résultat). Tout fonctionnait, seulement je me suis aperçu que j'avais un souci,
    à savoir : il y a plusieurs joueurs... Donc je dois prendre ce paramètre très important en compte et adapter.

    L'application me génère automatiquement (via boutons) des fichiers (.txt) suivant la liste de joueur que l'utilisateur crée, comme ceci

    J'ai 4 dossiers: (dans lesquels tous les fichiers son des .txt)

    liste des joueurs
    avec •joueurs.text

    Points des joueurs
    avec.....•Points-jessy.text
    ...........•Points-jean.text
    ...........•Points-gizmo.text
    ...........•Points-toto.text


    Pronos des joueurs
    avec.....•Pronos-jessy.text
    ...........•Pronos-jean.text
    ...........•Pronos-gizmo.text
    ...........•Pronos-toto.text

    Resultat
    avec.....•resultat-matchs.text



    Les fichiers Prono-jessy.txt sont toujours sous cette forme (exemple)

    1
    2
    N

    Le fichier resultat-match.text (exemple)

    2
    2
    1

    Il faudrait comparer chacun des fichiers du répertoire "Pronos des joueurs" avec le fichier "resultat-match" ligne par ligne tel que:

    Si la ligne1 du fichier "Prono-jessy.txt" = ligne 1 du fichier "resultat-match.text" alors le résultat est égal à 1 (ce 1 sera écrit dans un fichier "Points-jessy.text")

    Dans l'exemple si dessus jessy marquerait 1 point après comparaison, car la ligne 2 des deux fichiers est identique.

    Je souhaiterai adapter le codage pour comparer le fichier "resultat-match.text" à chacun des fichiers du répertoire "Pronos des joueurs"

    Après chaque journée écoulée, ces fichiers sont écrasés, le but est d'obtenir l'addition des points de chaque joueurs pour établir un classement décroissant.

    Une aide ne serait pas de refus pour le codage, car je patauge. Par avance merci.

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    J'ai regardé rapidement, voici pour comparer les pronostics de plusieurs joueurs, je n'ai pas fais le lien avec les 39 journées

    Je déclare quelques constantes représentant les noms de fichier, une liste de joueurs.
    Dans le load, je charge les joueurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Const FichierJoueurs As String = "D:\data\fichiers\ListeJoueurs\joueurs.txt"
        Const FichierResultat As String = "D:\data\fichiers\Resultat\resultat-matchs.txt"
        Const FichierPronos As String = "D:\data\fichiers\PronosJoueurs\Pronos-{0}.txt"
        Const FichierPoints As String = "D:\data\fichiers\PointsJoueurs\Points-{0}.txt"
     
        Private Joueurs As List(Of String) = New List(Of String)
     
        Private Sub frmPronostics_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim lj As String() = File.ReadAllLines(FichierJoueurs)
            For i As Integer = 0 To lj.Count - 1
                Joueurs.Add(lj(i))
            Next
        End Sub
    Le {0} permet d'avoir une zone ou l'on peut placer le texte que l'on veut avec la méthode format.

    Voici la function qui lit le fichier resultat match
    Parcours les joueurs, lit le fichier de chaque joueurs, compare et enregistre le score dans le fichier de points du joueur
    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
        Function resultat() As Boolean
            Dim ResultatMatch As String() = File.ReadAllLines(FichierResultat)  ' le fichier résultat match
            Dim Pronos As String()                                              ' le fichier des pronotics joueurs
            Dim NbEgalite As Integer                                            ' le nombre d'égalités (pronostics correct)
            Try
                For Each joueur As String In Joueurs    ' parcours des joueurs
                    NbEgalite = 0                       ' ne pas oublier, sinon cumul pour les joueurs suivants
                    Pronos = File.ReadAllLines(String.Format(FichierPronos, joueur)) 'lecture du pronotic du joueur
                    For i As Integer = 0 To ResultatMatch.Count - 1
                        If ResultatMatch(i) = Pronos(i) Then NbEgalite += 1
                    Next
                    File.WriteAllText(String.Format(FichierPoints, joueur), NbEgalite.ToString) ' sauvegarde des points du joueur
                Next
            Catch ex As Exception
                Return False
            End Try
            Return True
        End Function
    Là nous restons simple,
    Peut être, pour apprendre et allez plus loin tu pourrais utiliser des fichiers xml et des classes.

  9. #9
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 330
    Points : 774
    Points
    774
    Par défaut
    Bonjour,

    Pour ce genre de chose, j'utiliserai plus un DataSet couplé à un document XML que des fichiers texte séparés.
    Il est plus simple de faire une petite requête sur un dataset que manipuler des fichier pour les comparer.

    Je vous ai fait un petit exemple vite fait pour que vous ayez une idée.
    Il n'est pas complet (faut pas exagérer ) mais ça peut déjà vous aider à comprendre.

    Cordialement.

    EDIT: rv26t vole toujour mes idées
    EDIT2: J'ai oublier d'enlever la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Settings.FichierDonnées = String.Empty
    dans MainForm.vb. C'était pour tester le code de .Load
    Fichiers attachés Fichiers attachés

  10. #10
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 330
    Points : 774
    Points
    774
    Par défaut
    Bonsoir,

    J'ai complété l'exemple pour que ce soit un peu plus explicite.

    Bon dev.
    Fichiers attachés Fichiers attachés

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Voire aussi l'utilisation d'une base de données.

Discussions similaires

  1. [Installation] Demande d'aide pour l'installation de svn sous WS2003 et MAC svp
    Par beegees dans le forum Subversion
    Réponses: 1
    Dernier message: 26/02/2013, 11h42
  2. [QST] Demande d'aide pour libmysql sous borland.
    Par dimland dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/01/2008, 00h36
  3. Demande d'aide pour query difficile
    Par ericjean514 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/02/2005, 19h52
  4. Demande d'aide pour une requête
    Par arkzor dans le forum Requêtes
    Réponses: 3
    Dernier message: 28/12/2004, 03h40
  5. [TPW][cours]Demande d'aide pour finir un programme
    Par jf dans le forum Turbo Pascal
    Réponses: 21
    Dernier message: 16/06/2003, 19h10

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