Supprimer un interval de ligne dans plusieurs fichiers txt

pak80 Messages postés 24 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 15 mai 2012 - 11 juin 2007 à 17:43
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 11 juin 2007 à 21:39
Bonsoir, je suis debutant

J'aimerais suprimer dans environ 500 fichiers textes de la ligne 1 à 5. J'ai recuperé ce code mais cela ne fonctionne qu'avec 1 seul fichier txt. Pouvez vous m'aider

Merci d'avance

Sub sup()
Dim colLignes As New Collection
Dim ff As Integer
ff = FreeFile


Dim sLigne As String


'Lecture du fichier, envois chaque ligne dans la collection
Open "C:\Documents and Settings\PascalR\Mes documents\ren4\produits_18500.txt" For Input As #ff
    While Not EOF(ff)
        Line Input #ff, sLigne
        colLignes.Add sLigne
    Wend
Close #ff


'Suppression des lignes 5 et 11 par exemple


colLignes.Remove 8
colLignes.Remove 7
colLignes.Remove 6
colLignes.Remove 5
colLignes.Remove 4
colLignes.Remove 3
colLignes.Remove 2
colLignes.Remove 1


'Réecriture du fichier
Dim i As Integer
Open "C:\Documents and Settings\PascalR\Mes documents\ren5\produits_18500.txt" For Output As #ff
   For i = 1 To colLignes.Count
        Print #ff, colLignes(i)
   Next
Close #ff




End Sub

3 réponses

cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
11 juin 2007 à 18:50
Salut,

Regarde su codyx >> Snippet, PCPT à fait une fonction qui compte dans un répertoire le nombre de fichiers que tu veux(.Txt, .Jpg.....)

Tu pourrais t'en servir en y intercallant le code que tu as(dans sa fonction)...Dés que le fonction conmpte un fichier, tu récupères le nom de celui-ci, fais ton traitement et puis passe à un autre....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
11 juin 2007 à 18:54
Re,

Regarde sur http://www.codyx.org/snippet_compter-nombre-fichiers-dans-repertoire_263.aspx#844
A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
11 juin 2007 à 21:39
Salut,

et évite d'utiliser une collection pour ça, c'est assez gourmand en mémoire ^^

Je sais plus si c'est un de mes codes ou non, peu importe, je t'ai fait une mini modif (commentaire) :

Option Explicit
Private Sub ReadAllLines(ByVal sPath As String, ByRef aLines() As String)
Dim FF As Integer
Dim sBuffer As String
    FF = FreeFile
    On Error Resume Next
    Open sPath For Input As #FF
        sBuffer = Input(LOF(FF), #FF)
    Close #FF
    aLines = Split(sBuffer, vbCrLf)
End Sub

' exemple
d'utilisation
Private Sub Form_Load()
Dim aMesLignes() As String
Dim i As Long
    Me.AutoRedraw = True
    Me.Show
    
    ReadAllLines "a:\log.txt", aMesLignes
    Me.Print (1 + UBound(aMesLignes)) & " lignes trouvées"

' un simple +
5 ici suffit..
    For i = LBound(aMesLignes) + 5 To UBound(aMesLignes)
        Me.Print aMesLignes(i)
    Next i
End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

T'as plus qu'à mettre tes noms de fichiers dans un tableau de varaibles pour boucler le travail dessus (For i = ..)

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
0