Supprimer une ligne dans un fichier

1/5 (5 avis)

Snippet vu 11 233 fois - Téléchargée 38 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
15 mars 2006 à 16:49
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 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
13 juil. 2003 à 12:21
Menu projet -> Références -> Microsoft Scripting Runtime
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
13 juil. 2003 à 09:10
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 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
13 juil. 2003 à 00:50
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 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
12 juil. 2003 à 21:41
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.