écrire a la fin d'un fichier .txt [VB6] - VB/VBA/VBS - Programmation
Marsh Posté le 10-12-2005 à 22:56:16
En VBA et VB on ouvre un fichier en mode Ajout ; crée le fichier s'il n'existe pas et on écrit une ligne en fin de fichier
Sub Ajout()
Dim Filenumber As Integer
Dim Extension As String
Dim Fichiertxt As String
Filenumber = FreeFile ' Lit le numéro de fichier inutilisé
Fichiertxt = "c:\titi.txt"
Extension = ".avi"
Open Fichiertxt For Append As #Filenumber 'ouvre le fichier
Write #Filenumber, Extension 'ecrit
Close #Filenumber 'ferme le fichier
End Sub
Marsh Posté le 11-12-2005 à 00:59:34
merci !
en fait j'ouvrai le fichier avec Output au lieu de Append...
Marsh Posté le 17-01-2006 à 11:32:33
J'ai également un problème en ce qui concerne les fichiers...
je ne sais pas dans quel mode l'ouvrir, et comment lire une ligne une par une...
J'ai pensé a Input, mais je dois aussi remplacer un morceau du contenu par un autre... donc là le Input n'est pas possible me semble t'il...
Open (App.Path & "\fichier.txt" ) For Input As #1
Line Input #1, tmp 'on lis la ligne et on la stock dans la variable
Donc en fait il faudrai que je puisse l'ouvrir en lecture/ecriture, et que je puisse recherché la ligne qu'il me faut puis remplacer...
Merci d'avance
Marsh Posté le 17-01-2006 à 20:14:48
Pour écrire dans un fichier, il faut l'ouvrir en For Output.
Cela marche si le morceau à remplacer à exactement la même taille que le nouveau morceau.
Mais si l'ancien et le nouveau morceau n'ont pas la même taille (comme je le devine), alors il y aura un problème, et il faudra adopter une autre solution :
1. ouvrir le fichier en input, et ouvrir un nouveau fichier en append
2. lire et recopier tous les caractères jusqu'au point d'insertion
3. lire sans recopier les caractères de l'ancien morceau
4. écrire les caractères du nouveau morceau
5. lire et recopier tous les caractères suivants
6. fermer les deux fichiers
Marsh Posté le 17-01-2006 à 21:20:26
Pour plus de renseignement sur les fichiers à accès séquentiel, voir
http://www.cathyastuce.com/vba/codefichierseq.php
Epéna
Marsh Posté le 18-01-2006 à 08:56:30
Donc si je comprend bien la meilleur méthode sera de faire ca avec deux fichiers?
Un ancien ou je récupere toute les informations a ne pas changer, et un autre temporaire qui recupere les informations du 1er jusqu'au truc a changer, ajout les modificications, retourne cherché le reste dans le 1er fichier et resauvegarde sur le 1er fichier ?
j'ai bien compris?
Marsh Posté le 18-01-2006 à 08:58:49
Le plus simple est je pense de créer le 2ème fichier avec les modifs, puis virer le premier et renommer le nouveau avec le nom de feu le premier...
Marsh Posté le 18-01-2006 à 09:01:02
Ok merci bien je vais réfléchir a la question afin de faire comme ca alors
Marsh Posté le 10-12-2005 à 14:14:58
j'ai un fichier text qui contien des noms d'extention :
.jpg
.gif
.txt
.mkv
et je doit rajouter une extention a cette liste (.avi par exemple) :
.jpg
.gif
.txt
.mkv
.avi
comme fait on ?
à priori c'est plustot basique mais comme je débute...
merci d'avance