Modifier une ligne d’un fichier .txt (et seulement celle-ci)
Bonjour à Tout le Forum,
Dans le cadre d’une discussion :
http://www.developpez.net/forums/d11...gnes-colonnes/
#43
Et pour avancer :
Suivant le bon tuto:
Manipulation des fichiers en VBA
Par Christophe WARIN
Il est dit (concernant les fichiers texte) :
Or mon besoin est (si cela est possible, bien sur):Une nouvelle fois, il faut choisir entre lecture et écriture. Impossible d'utiliser les deux modes simultanément.
Modifier la première ligne d'un fichier .txt et ,donc, ne pas avoir à réécrire les autres lignes.
Mon code
Pour l'ensemble de la procédure
Le partie du code que je voudrais optimiser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim Appli As Object Dim Creation As Object Dim Chemin As String Dim NomFichier As String Chemin = "C:\.............\.................\" NomFichier = "fichierdebase.txt" Set Appli = CreateObject("Scripting.FileSystemObject")
Dans ce code : on doit créer un nv fichier (j’aimerais m’en passer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim Lecture As String Set Creation = Appli.CreateTextFile(Chemin & "TempB.txt", True) Open Chemin & NomFichier For Input As #1 Do While Not EOF(1) Input #1, Lecture If Not IsNumeric(Split(Lecture, ";")(0)) Then ' si le premier enregistre n'est pas un numérique ' On considère que c'est les entêtes et on replace le "." par "_" ' Si tous les premiers enregistrements ne sont pas des numériques on adaptera Creation.Write Replace(Lecture, ".", "_") & vbCrLf Else Creation.Write Lecture & vbCrLf End If Loop Close #1
Faire un test pour déterminer si ce sont les entêtes de champs (je préférais savoir si c'est la première ligne, m’en contenter et pouvoir la corriger).
Et recopier l'ensemble des lignes du fichier (je préférais m'en dispenser).
Je ne souhaite qu’une piste …..
Ou bien comme réponse : « c’est impossible » compte tenu du tuto cité si dessus. Et oui !
Sachant, bien sur, quand adaptant le code si dessus on peut corriger (et en fait tout faire)), mais mon but est de diminuer le temps dans l’exécution du traitement.
Par avance merci et bonne journée à tous
Partager