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 :

Afficher une donnée contenue dans une liste de class


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 20
    Par défaut Afficher une donnée contenue dans une liste de class
    Bonjour,
    Grâce à ceux qui m'ont déjà aidé sur ce forum, j'ai pu comprendre comment mémoriser les données contenues dans un fichier texte. Le code est le suivant :
    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
    Public Class Form1
        Dim Ts As New List(Of T)
        Private Class T
            Public Tx As Integer
            Public Ty As Integer
        End Class
        Dim Test As New T
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim DataLine() as string = System.IO.File.ReadAllLines(OpenCameraMotionFileDialog.FileName)
                For Each l As String In DataLine
                        Test.Tx = CInt(Split(l, "|")(1))
                        Test.Ty = CInt(Split(l, "|")(2))
                        Ts.Add(Test)
                    End If
                Next
            End If
            Call DisplayData()
        End Sub
    End Class
    Avec ça, j'ai mémorisé dans la classe Test les données Tx et Ty, puis mémorisé dans Ts autant de class Test qu'il y a de lignes dans le fichier texte. Mon problème est que je ne parviens pas à afficher les valeurs contenues dans une ligne précise du fichier texte. Je pensais y arriver facilement en ajoutant avant le End Class le module suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub DisplayData()
            Test = Ts.Item(2)
            Label1.Text = Test.Tx
            Label2.Text = Test.Ty
        End Sub
    Mais seules les données de la dernières ligne du fichier texte s'affichent, et je ne comprend pas pourquoi. A priori Test=Ts.item(0) devrait mémoriser dans Test la première ligne de la liste Ts, pas la dernière... Comprends vraiment pas. Merci de m'éclairer de vos lumières.

  2. #2
    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,
    C'est aussi une histoire de portée de variable.
    "Test" en global remplace à chaque tour, toutes les valeurs des items de la liste par sa dernière valeur. Tuas donc une liste d'items de même valeur.
    Comme cela ça devrait fonctionner :
    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
        Dim Ts As New List(Of T)
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim OpenCameraMotionFileDialog As New OpenFileDialog()
            OpenCameraMotionFileDialog.Title = "Please Select a File"
            OpenCameraMotionFileDialog.InitialDirectory = "C:\\Program Files (x86)/MCSM"
            OpenCameraMotionFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
            If OpenCameraMotionFileDialog.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                Dim DataLine() As String = System.IO.File.ReadAllLines(OpenCameraMotionFileDialog.FileName)
                For Each l As String In DataLine
                    If InStr(1, l, "--") = 0 Then 'beginning of body data reading
                        Dim t As New T
                        t.f = CInt(Split(l, "|")(0))
                        t.Tx = CInt(Split(l, "|")(1))
                        't.Ty = CInt(Split(l, "|")(2))
                        Ts.Add(t)
                    End If
     
                Next
            End If
           DisplayData()
     
        End Sub
     
        Private Sub DisplayData()
            Dim tst As T = Ts.Item(1)
            Label1.Text = CStr(tst.f)
            Label2.Text = CStr(tst.Tx)
        End Sub
    A tester.

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 20
    Par défaut
    AAAHHHHHH.... Merci Chrismonoye, tu m'enlèves une sacrée épine du pied et en plus je viens de comprendre un peu mieux le problème de la portée des variables grâce à toi.... Merci

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

Discussions similaires

  1. [XL-2003] SELECT intégrant une donnée contenu dans une cellule
    Par kikie43 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2014, 15h26
  2. Réponses: 3
    Dernier message: 07/04/2011, 14h38
  3. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  4. Changer un caractère dans une chaîne contenue dans une phrase
    Par cirtey dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 07/03/2007, 16h16

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