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 :

Selection d'un index dans un tableau avec variables


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Dévellopeur amateur
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dévellopeur amateur

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut Selection d'un index dans un tableau avec variables
    Bonjour, bonsoir.

    J'ai un problème avec mon code. J'aimerais que le logiciel Récupère et trie des données depuis un fichier. J'ai un fichier files.dat qui est composé comme 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
    'Films':
    >'Prochainement.';
     
    'Prochainement.':
    >'Prochainement.';
     
    'Series':
    >'Wakfu'
    >'Bref';
     
    'Serie 2':
    >'Saison 1'
    >'Saison 2';
     
    'Saison 1':
    >'Episode 1 - test'
    >'Episode 2 - episode de merde'
    >'Episode 3 - encore un pourri'
    >'Episode 4 - Celui la est bien';
     
    'Saison 2':
    >'Episode 1 - test'
    >'Episode 2 - episode de merde'
    >'Episode 3 - encore un pourri'
    >'Episode 4 - Celui la est pas mal';
     
    'Serie 2':
    >'Episode 1 - nul'
    >'Episode 2 - aussi nul'
    >'Episode 3 - bien'
    >'Episode 4 - Très bien !'
    >'Episode 5 - Complètement nul.';
    J'aimerais que mon logiciel puisse récupérer les données "Saison 1" et "Saison 2" lorsque qu'on lui donne la propriété "Serie 2". J'ai pour cela rédiger quelques lignes :

    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
    Dim Reader() = File.ReadAllLines("files.dat")
            Dim RegexSelect As New Regex("^'(?<value>.*)':$")
            Dim RegexAdd As New Regex("^>'(?<value>.*)'$")
            Dim RegexAddFinal As New Regex("^>'(?<value>.*)';$")
            Dim LineNumber As Integer = 0
     
            For Each line As String In Reader
     
                Dim TexteSettingsMatch As Match = RegexSelect.Match(line)
     
                If TexteSettingsMatch.Success Then
     
                    Dim EndWhile As Boolean = False
                    Dim LineNumberForReader As Integer = LineNumber
     
                    While EndWhile = False
     
                        Dim TexteSettingsMatch2 As Match = RegexAdd.Match(Reader(LineNumberForReader + 1))
                        Dim TexteSettingsMatch3 As Match = RegexAddFinal.Match(Reader(LineNumberForReader + 1))
     
                        If TexteSettingsMatch2.Success Then
     
                            LB_ListeCentre.Items.Add(TexteSettingsMatch2.Groups("value").Value)
                            LineNumberForReader = LineNumberForReader + 1
     
                        ElseIf TexteSettingsMatch3.Success Then
     
                            LB_ListeCentre.Items.Add(TexteSettingsMatch3.Groups("value").Value)
                            EndWhile = True
     
                        End If
     
                    End While
     
                End If
     
                LineNumber = LineNumber + 1
     
            Next
    Ce code lis toutes les lignes du fichier et les range dans un tableau. Ensuite je trie le fichier ligne par ligne et si il vois une ligne qui correspond a la regex "RegexSelect", il prend les prochaines lignes. Pour qu'il arete de lire les lignes j'ai fait une regex avec un ; a la fin, que j'ai mis dans mon fichier files.dat. Seulement avec ce code, il m'affiche toutes les lignes de la regex RegexAdd et de la regex RegexAddFinal. Il m'affiche donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Prochainement.
    Prochainement.
    Wakfu
    Bref
    Saison 1
    Saison 2
    Etc...
    Ou me suis-je trompé ?

    Merci d'avance de vos réponses.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    quelle est la hiérarchie de ton fichier ?
    'Serie 2' apparait 2 fois en plus ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Dévellopeur amateur
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dévellopeur amateur

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    En fait j'ai 2 ListBox. Une de gauche qui permet de lister les series et films par catégorie ou par saison etc... L'autre se trouve au centre et celui-ci permet de selectionner un fichier en particulier. Et j'aimerais que lorsque que je choisis un sujet ou une serie etc, une liste de fichiers apparaisse dans le ListBox du milieu. Par exemple quand je clique sur "Wakfu", que "Saison 1" et "Saison 2" apparaisse dans la ListBox du milieu et ce, grace au tri du fichier Files.dat. J'espère que vous m'avez compris.

    Et oui je me suis trompé, j'ai un peu modifié le fichier pour le mettre sur le forum mais ce ne sont pas les noms exacts.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    je comprends donc qu'il n'y a que 2 niveaux :

    tu fais un system.io.file.readalllines sur le fichier
    ensuite une boucle sur chaque ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ligne = "" then continue for
    if not ligne.startswith(">") then
        créer une instance de classe, la mettre dans la variable "en cours de lecture"
      else
        ajouter l'item dans la collection de l'instance "en cours de lecture"
    end if
    et donc avant le for il faut déclarer une variable "en cours de lecture"
    la classe à créer a une propriété titre as string et une propriété Elements as list(of string)

    ca ne sert à rien de se compliquer la vie avec un regex pour ca !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Dévellopeur amateur
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dévellopeur amateur

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    Oula x) J'ai pas tout compris x)

  6. #6
    Membre averti
    Homme Profil pro
    Dévellopeur amateur
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dévellopeur amateur

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    J'ai honte, il suffisait de rajouter un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If TexteSettingsMatch.Groups("value").Value = LB_ListeGauche.SelectedItem Then
     
    End If
    Et de mettre dedans mon "LB_ListeCentre.Items.Add(TexteSettingsMatch3.Groups("value").Value)".

    Enfin bon, c'est résolu !

    PS: Je sais tout ca, c'est juste que la j'étais complètement dépité et fatigué alors que la solution me sautais aux yeux x)

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

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. selection d'une ligne dans un tableau en html
    Par jehlg dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2006, 23h08
  3. Inclure une page dans dans une tableau avec javascript
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/09/2005, 12h31
  4. Navigation dans un tableau avec Word
    Par Sinclar dans le forum Access
    Réponses: 1
    Dernier message: 12/09/2005, 19h12
  5. balise <img> dans un tableau avec firefox
    Par yannock dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/10/2004, 16h44

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