Le module va supprimer les lignes vides du fichier en entrée.
Le string passé en paramètre (fichier$) contient le chemin et le nom du fichier.
Source / Exemple :
' Fonction qui nettoie un fichier texte des blancs
Public Function VireLigneBlanche(fichier As String)
' Variables locales
Dim buffer As String
Dim fichier2 As String
' Prépare le nom du fichier2
Call PrepareFichTemp(fichier, fichier2)
' Ouverture des fichiers
Open fichier For Input As #1
Open fichier2 For Output As #2
' Premiere lecture
Line Input #1, buffer
' Boucle de traitement
While EOF(1) = False
' 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
Line Input #1, buffer
Wend
' Fermeture des fichiers
Close #1
Close #2
' Efface le fichier 1
Kill (fichier)
' Renomme le fichier 2 pour remplacer le fichier 1
Name fichier2 As fichier
End Function
' Prépare le chemin du fichier temporaire à partir du
' nom du premier fichier
Private Function PrepareFichTemp(fichier As String, fichier2 As String)
' Variables locales
Dim chemin As String
Dim pos As Integer
Dim old_pos As Integer
' Trouve le dernier \
pos = InStr(1, fichier, "\", vbBinaryCompare)
While pos <> 0
old_pos = pos
pos = InStr(old_pos + 1, fichier, "\", vbBinaryCompare)
Wend
' Extrait le chemin
chemin = Left(fichier, old_pos)
' Sauvegarde le nom final
fichier2 = chemin & "temp.txt"
End Function
Conclusion :
Le fonctionnement est simple, le fichier en entrée est lu ligne par ligne. Si une ligne est vide, elle n'est pas copiée dans le fichier temporaire de destination. Une fois le fichier source à sa fin, on l'efface et on renomme le fichier temporaire avec le nom du fichier source.
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.