cs_joina
Messages postés31Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention23 mai 2003
-
11 avril 2003 à 12:47
Toumar
Messages postés7Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 octobre 2008
-
14 mars 2008 à 12:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Toumar
Messages postés7Date d'inscriptionjeudi 26 juillet 2007StatutMembreDernière intervention29 octobre 2008 14 mars 2008 à 12:43
Merci pour ce code très utile ;)
jplafleur2003
Messages postés1Date d'inscriptionlundi 10 novembre 2003StatutMembreDernière intervention20 novembre 2006 20 nov. 2006 à 16:42
Une erreur c'est glissé dans ce source, a chaque fois que le prog est lancé une ligne est omise a la fin du fichier resultat. la solution est la suivante, a la fin de la boucle on doit écrire la dernière ligne.
' 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
Print #2, buffer
' 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
cs_joina
Messages postés31Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention23 mai 2003 11 avril 2003 à 12:47
j'ai essayé le code et a chaque fois que je relance le comptage de ligne, mon fichier perd une ligne. Si quelqu'un sait pourquoi ça m'interesse.
14 mars 2008 à 12:43
20 nov. 2006 à 16:42
' 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
Print #2, buffer
' 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
11 avril 2003 à 12:47