Probleme avec la fonction REDIM Preserve

quentin22breizh
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017
- 30 juil. 2014 à 17:07
quentin22breizh
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017
- 30 juil. 2014 à 21:59
Bonjour à tous,

Je me permets de vous écrire car j'ai un petit souci en VB avec la fonction REDIM Preserve.
Mon programme récupère un fichier texte, le converti en tableau et supprime les lignes qui ne corresponde pas à des critères que je défini de base. Petit Hic, il ne me supprime pas mes lignes.

Je vous joins mon code afin d'expliciter au mieux ma demande:
If TextBox1.Text = "" Then GoTo Fin_Process
'Décomposition du fichier en un tableau de ligne
Dim MonTableauDeLignes() As String = File.ReadAllLines(TextBox1.Text)
'Comptage du nombre de ligne composant le fichier
Dim NbLignes As Integer = MonTableauDeLignes.Count
'Nettoyage du fichier
'Suppression des lignes ne comprenant pas le terme "Variables
Dim t As Integer
For t = NbLignes - 1 To 0 Step -1
'Recherche du texte "Variable" dans la ligne en cours
If InStr(1, MonTableauDeLignes(t), "Variable") = 0 Then
ReDim Preserve MonTableauDeLignes(NbLignes - 2) 'Suppression de la ligne concernée
End If
Next

'Réécriture du fichier de sortie
File.WriteAllLines(TextBox1.Text, MonTableauDeLignes)
Fin_Process:
MessageBox.Show("Aucun fichier selectionné")

2 réponses

NHenry
Messages postés
14971
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 août 2022
161
30 juil. 2014 à 18:37
As-tu regardé en pas à pas en espionnant les valeurs ?
Car si tu veux supprimer une ligne au milieu du tableau, tu supprimes uniquement le dernier élément du tableau.
0
quentin22breizh
Messages postés
35
Date d'inscription
mercredi 30 juillet 2014
Statut
Membre
Dernière intervention
27 avril 2017

30 juil. 2014 à 21:59
Bonsoir,

En fait, j'ai cassé tout le programme et trouver une solution qui fonctionne:
' on charge toutes les lignes
Dim lines As List(Of String) = File.ReadLines(TextBox1.Text).ToList()
Dim Nblignes As Integer = lines.Count

'Nettoyage du fichier
'Suppression des lignes inutiles
Dim t As Integer
For t = Nblignes - 1 To 0 Step -1
'Recherche du texte "Variable" dans la ligne en cours
If InStr(1, lines(t), "Variable") = 0 Then
lines.RemoveAt(t)
ElseIf InStr(1, lines(t), "External") = 0 Then
lines.RemoveAt(t)
ElseIf InStr(1, lines(t), "Read Only") = 0 Then
lines.RemoveAt(t)
ElseIf InStr(1, lines(t), "BOOL") = 0 Then
lines.RemoveAt(t)
ElseIf InStr(1, lines(t), "Def_inhib_api1") <> 0 Then
lines.RemoveAt(t)
ElseIf InStr(1, lines(t), "Def_inhib_api2") <> 0 Then
lines.RemoveAt(t)
ElseIf InStr(1, lines(t), "Def_inhib_api3") <> 0 Then
lines.RemoveAt(t)
End If
Next

'Réécriture du fichier de sortie
File.WriteAllLines(TextBox1.Text, lines)

Mais maintenant, j'ai un autre souci, je n'arrive pas à construire un tableau 2D à partir d'un fichier texte
0