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:
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:
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:
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.