nabilwael
Messages postés62Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention11 mars 2010
-
2 mai 2007 à 19:02
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
2 mai 2007 à 19:17
bonjour,
Comment je peux eliminer les lignes vides dans un fichier texte (fichier.txt)
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 2 mai 2007 à 19:12
Salut,
Une solution, est de lire ton fichier original et en parrallèle en créer un...
Quand tu lis ton premier fichier, si la ligne est non vide tu l'écris dans l'autre fichier, si par contre ta ligne est vide, tu passes à la ligne suivante, une boucle en quelque sorte du ton fichier original..
Il y pleins d'exemples sur le site, fais une recherche et tu trouvera facilement...
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 2 mai 2007 à 19:13
Salut,
tien un bout de code fait en 2 minutes...
Sub DeleteEmptyLine(ByVal sFile As String)
Dim MyText As String, ParseLine() As String
Dim ff As Integer, i As Long
ff = FreeFile
Open sFile For Input As #ff
MyText = Input(LOF(ff), #ff)
Close #ff
Open sFile For Output As #ff
ParseLine = Split(MyText, vbCrLf)
For i = LBound(ParseLine) To UBound(ParseLine)
If ParseLine(i) <> vbNullString Then
Print #ff, ParseLine(i)
Next i
Close #ff
Erase ParseLine
End Sub
Sub Exemple()
' ne gère pas si il y a
des espaces... au lieu d'un vide
DeleteEmptyLine "C:\Documents and
Settings\CI\Bureau\Nouveau.txt"
End Sub
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 2 mai 2007 à 19:17
Re exemple pas optimisé, mais fonctionel :
Dim FichierOriginal As String
Dim FichierDest As String
Dim buffer As String
FichierOriginal = ("C:\Toto.Txt")
FichierDest = ("C:\TotoTemp.Txt")
Open FichierOriginal For Input As #1
Open FichierDest For Output As #2
'Premiere lecture
Line Input #1, buffer
'Boucle de traitement
While EOF(1) = False Or True
' Nettoie le buffer
buffer = Trim(buffer)
' Si il n'est pas vide, copie dans le fichier temp
If Len(buffer) > 0 Then Print #2, buffer
' Lecture suivante
If EOF(1) = True Then
Close #1
Close #2
Else
Line Input #1, buffer
Wend