lincaro
Messages postés13Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 mai 2005
-
2 août 2004 à 14:37
lincaro
Messages postés13Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 mai 2005
-
3 août 2004 à 08:25
Salut, je suis en train de faire un petit programme de fusion, je souhaiterai conserver ma liste de doc dans un fichier .txt, donc j'ouvre mon fichier et j'enregistre mais je n'arrive pas a changer de ligne donc ca enregistre tout le tps sur la premiere ligne, je vois pas comment faire, si quelqu'un peu m'aider ce serai cool. merci
je vous met mon morceau de code peut etre que vous comprendrez mieu mon erreur...
Sub sauvegarde_liste()
Dim pf As Integer
Dim i As Integer
Dim nbenr As Integer
pf = FreeFile
If chckliste.Value = 1 Then
Open "C:\mes documents\ sauvegardeliste.txt" For Random As pf
'nbenr = LOF(pf) / Len(Myenr)
For i = 1 To nbr_doc
Myenr.nom_fichier = tabcons(i).nom_fichier
Myenr.nom_rep = tabcons(i).nom_repertoire
Myenr.nom_sauvegarde = Txtsauvegarde.Text
Put #pf, , Myenr
Next i
cs_RDX
Messages postés117Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention27 août 2005 2 août 2004 à 15:01
salut!
Je serait a ta place, j'ouvrirai en mode binaire
Open "C:\mes documents\ sauvegardeliste.txt" for binary as #1
for i =1 to nbrdoc
Myenr.nom_fichier = tabcons(i).nom_fichier
Myenr.nom_rep = tabcons(i).nom_repertoire
Myenr.nom_sauvegarde = Txtsauvegarde.Text
Put #1, , Myenr
Next i
close #1
mais une chose très IMPORTANTE : MyEnr doit etre de longueur finie !
toutes tes chaines doivent etre déclarées comme ca :
Dim Chaine1 as string *100 'par exemple
Sinon tu doit enregistrer la longueur de chaque variable string dans le fichier.
lincaro
Messages postés13Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 mai 2005 2 août 2004 à 15:18
Merci d'avoir repondu, je viens de faire comme tu me l'as dit, j'avais deja defini des longueur pour MyEnr. le fait de mettre binary au lieu de random ne change rien malheureusement. Le probleme reste le meme, les derniers ecrasent les enregistrements d'avant.
Fulgy
Messages postés85Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention 5 octobre 2004 2 août 2004 à 15:51
Salut.
Si tu veux enregistrer tout en une fois utilise un file system object (référence: Microsoft Scripting Runtime) qui te permet d'écrire ligne par ligne, sinon si tu veux enregistrer en plusieurs fois il faut que tu ouvre ton fichier en mode append ce qui te permet d'écrire à la fin du fichier en conservant l'original.
A+
lincaro
Messages postés13Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 mai 2005 2 août 2004 à 16:19
j'avais deja référencé avec Microsoft Scripting Runtime mais ca n'ecrit pas pour autant a la ligne. j'ai essayé avec append, mais ca me pose un probleme avec mon Myenr.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Fulgy
Messages postés85Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention 5 octobre 2004 2 août 2004 à 16:26
Même si tu as mis la référence à Microsoft Scripting Runtime, si tu ouvre tes fichier avec Open, tu ne l'utilise pas. Je te donne un exemple pour écrire cela dans un fichier:
Salut
Coucou
Bijour
<code>
dim fso as filesystemobject
dim dest as textstream
set fso = new filesystemobject
set dest = fso.createtextfile("exemple.txt", true)
dest.writeline "Salut"
dest.writeline "Coucou"
dest.writeline "Bijour"
dest.close
set dest = nothing
set fso = nothing
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 2 août 2004 à 16:26
Quel drole d'idée d'ouvrir un ficheir texte en binary !!!!! Pour écrire dasn un ficheir texte, il suffit de l'ouvrir en Output et d'utiliser Print #..., dessus !!! J'ai l'impression que vous vous compliquer joliment la vie tous !!
lincaro
Messages postés13Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 mai 2005 2 août 2004 à 16:32
oui mais output ne va pas conserver les autres enregistrement??
et je n'ai pas mis print mais put. il faudrai cas chaque fois je rouvre le fichier sur la premiere ligne ou il y a rien d'ecris. et ainsi de suite.
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 2 août 2004 à 23:10
Bonsoir
Si tu veux garder ton mode Random, essaie
Open "C:\mes documents\ sauvegardeliste.txt" For Random As #pf Len = Len(Myenr)
For i = 1 To nbr_doc
nbenr = LOF(pf) / Len(Myenr)
Myenr.nom_fichier = tabcons(i).nom_fichier
Myenr.nom_rep = tabcons(i).nom_repertoire
Myenr.nom_sauvegarde = Txtsauvegarde.Text
Put #pf, nbenr + 1, Myenr
Next i