Probleme avec la fonction REDIM Preserve

quentin22breizh Messages postés 34 Date d'inscription mercredi 30 juillet 2014 Statut Membre Dernière intervention 27 avril 2017 - 30 juil. 2014 à 17:07
quentin22breizh Messages postés 34 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é")
A voir également:

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 34 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
Rejoignez-nous