quentin22breizh
Messages postés35Date d'inscriptionmercredi 30 juillet 2014StatutMembreDernière intervention27 avril 2017
-
30 juil. 2014 à 17:07
quentin22breizh
Messages postés35Date d'inscriptionmercredi 30 juillet 2014StatutMembreDernière intervention27 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é")
NHenry
Messages postés15083Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 septembre 2023159 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.
quentin22breizh
Messages postés35Date d'inscriptionmercredi 30 juillet 2014StatutMembreDernière intervention27 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