Supprimer ligne dans fichier texte

Résolu
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 - 13 oct. 2010 à 18:26
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 - 16 oct. 2010 à 13:10
Bonjour, voila j'ai un code qui doit supprimer la ligne de texte comportant le mot prédéfini. Le problème est que le code génère l'erreur :
L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index

A mon avis le RemoveAt(i) pose problème car il supprime une ligne et cela décale le n° des lignes et au final ca les suppriment toutes.
For Each files In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, "*txt")
                Dim lines As List(Of String) = System.IO.File.ReadAllLines(files).ToList
                If lines.Count = 0 Then Continue For ' ne passe pas à la ligne de dessous mais remonte pour traiter le prochain fichier
                For i As Integer = 0 To lines.Count - 1
                    If lines(i).Contains("toto") Then
                        lines.RemoveAt(i)
                    End If
                Next
            Next

Qu'en pensez-vous ?

Ma LV2 c'est le Visual Basic, et toi ?

23 réponses

NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
14 oct. 2010 à 19:06
Bonjour,

Merci :)
Il y en a plusieurs, si tu rafraichis la page ;)

Je pense que oui, à vérifier.

0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
16 oct. 2010 à 11:38
Salut, j'ajoute ce message non pas battre le record de message dans un post mais parce qu'il y a une contrariété imprévue.

Le code permet de supprimer une ligne dans un fichier .txt mais pas dans une autre extension genre .docx ou rtf.

Une fois l'opération achevée, il m'est impossible d'ouvrir le fichier.
Dans Office j'ai un message qui me dit que le fichier est endommagé.

A mon avis le contage de ligne comme ont fait se fait seulement dans les .txt et dans les autres extensions dérègle tout.

Je vais enquêter sur le problème, si vous avez des idées je suis preneur.




Ma LV2 c'est le Visual Basic, et toi ?
0
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
16 oct. 2010 à 13:10
Bonjour,

Pour le RTF, utilises le contrôle RTF (je ne me rappel plus du nom exacte) de .NET
Et la raison pour que les DocX ne sont pas pris en compte, c'est que ce ne sont pas des fichiers texte standards, mais avec une autre mise en forme, il vaut mieux essayer d'automatiser Word (Controle OLE ou Macro).

0