Supprimer une ligne dans un fichier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 612 fois - Téléchargée 36 fois

Contenu du snippet

Ce code permet de supprimer une ligne dans un fichier.

Utilisation : Public Function DeleteLine (fName As String, LineNumber As Long) As Boolean

fName : indique le chemin et le nom du fichier à traiter
LineNumber : Indique le numéro de la ligne à supprimer

Exemple : DeleteLine "C:\MonFichier.txt", 2
--> suppression de la ligne 2 dans le fichier MonFichier.txt

Source / Exemple :


Public Function DeleteLine(fName As String, LineNumber As Long) _
     As Boolean

  Dim oFSO As New FileSystemObject
  Dim oFSTR As Scripting.TextStream
  Dim ret As Long
  Dim lCtr As Long
  Dim sTemp As String, sLine As String
  Dim bLineFound As Boolean
  
  On Error GoTo ErrorHandler
  If oFSO.FileExists(fName) Then
     Set oFSTR = oFSO.OpenTextFile(fName)
    lCtr = 1
     Do While Not oFSTR.AtEndOfStream
        sLine = oFSTR.ReadLine
        If lCtr <> LineNumber Then
            sTemp = sTemp & sLine & vbCrLf
        Else
            bLineFound = True
            
        End If
        lCtr = lCtr + 1
    Loop
   
     oFSTR.Close
     Set oFSTR = oFSO.CreateTextFile(fName, True)
     oFSTR.Write sTemp
  
    DeleteLine = bLineFound
   End If
   

ErrorHandler:
On Error Resume Next
oFSTR.Close
Set oFSTR = Nothing
Set oFSO = Nothing

End Function

A voir également

Ajouter un commentaire

Commentaires

cs_John7
Messages postés
47
Date d'inscription
jeudi 12 décembre 2002
Statut
Membre
Dernière intervention
12 janvier 2008
-
Bonjour,
Je vois pas mal de source sur le sujet et toutes parlent de supprimer une ligne précise mais quand il s'agit de la dernière ligne et que le fichier n'a jamais la même taille ? mis à part cela, c'est vrai que ta source pourrait être un peu optimisée...Salut john
cs_Willi
Messages postés
2382
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
15 -
Menu projet -> Références -> Microsoft Scripting Runtime
jannoman
Messages postés
258
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
20 février 2008
1 -
Au fait, chez moi Dim oFSO As New FileSystemObject n'existe pas.

J'ai aussi une deuxieme question : comment vous faites pour savoir toutes les propriétés et méthodes de ofs ? (du genre FileExists, OpenTextFile, ...)
Merci de répondre
cs_Willi
Messages postés
2382
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
15 -
ok c vrai y a beaucoup trop de variable ! j'utilise fso pour montrer qu'il est relativement simple d'utilisation mais po très rapide ok. c sur ke la meilleure solution c le binaire mais voila cette source s'adresse plus au débutant ! :)
cs_Alain Proviste
Messages postés
910
Date d'inscription
jeudi 26 juillet 2001
Statut
Modérateur
Dernière intervention
1 février 2015
1 -
Comment dire ? Je sais qu'il n'y a pas 36000 solutions mais tu fais comme tout le monde, tu écrases le fichier en question et tu le réécris en entier, alors pour un fichier de 5 ko ça va, mais pour un fichier de 200 mo c'est pas terrible. Le fait d'utiliser fso, je trouve pas ça très élégant non plus, d'autant plus que tu ne gagnes pas en rapidité... Le mieux c'est l'accés bianire. Sinon . c'est pas trop mal coder, à part que y a beaucoup de variable pour une si petite fonction...
Bonne continuation.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.