Sauvegarde de liste dans fichier texte

f56bre Messages postés 67 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 juillet 2006 - 2 sept. 2005 à 08:45
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 2 sept. 2005 à 14:02
pour sauvegarder une liste dans un fichier texte j'utilise le bout de code suivant

dim w as integer
dim od as string
Open "c:\fichier.txt" For Output As #1
Write #1, list1.list(0)
Close #1
For w = 1 To List1.ListCount - 1
Open "c:\fichier.txt" For Input As #1
od = StrConv(InputB(LOF(1), 1), vbUnicode)
Close #1
Open "c:\fichier.txt" For Output As #1
Print #1, od + list1.List(w)
Close #1
Next w

puis ensuite pour tout remettre dans la liste je fais

dim k as integer
dim inf as string
k = 0
Open "c:\fichier.txt" For Input As #1
Do Until EOF(1)
Line Input #1, inf
list1.List(kk) = inf
kk = kk + 1
Loop
Close #1

le problème c'est que je me retrouve avec des " " autour des chaines de caractères qui n'y étaient pas avant. Pour les mot c'est juste un problème esthétique mais pour les chiffres que j'utilise pour des calculs ça devien vraiment gênant
ps : je code en VB6
merci

8 réponses

f56bre Messages postés 67 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 juillet 2006
2 sept. 2005 à 09:04
Encore une petite question con : l'utilisteur doit remplir des textbox puis valider en clickant sur OK, comment est il possible qu'il revienne au même qu'il click sur OK ou qu'il tape ENTREE?
merci
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 sept. 2005 à 09:36
Bien complexe ton code pour ecrire une listbox dans un fichier ...
Voici ma proposition ...
Dim i as long,

Open "c:\test.txt" for Output as #1
for i = 0 to list1.ListCount -1
Print #1,List1.List(i)
Next
Close #1

Et pour recharger la liste ...
Dim S as string

List1.clear
Open "c:\test.txt" for input as #1
While not eof(1)
Line input #1,s
List1.AddItem S
Wend
Close #1

Pour la seconde question, il faut que tu gère cela dans l'EVT KeyDown de ta textbox ...

If KeyCode = vbKeyReturn then
cmdOK_Click
End If

En gros, tu vérifies la touche enfoncée dans la textbox, et si c'est la touche entrée, tu appelles l'EVT Click de ton bouton OK
0
f56bre Messages postés 67 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 26 juillet 2006
2 sept. 2005 à 09:46
oui mais en faisant un simple print comme ça pour chaque ligne tu vas les écrires l'une sur l'autre et au final tu n'auras que ta dernière ligne dans ton fichier texte
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 sept. 2005 à 13:20
Erreur ! Le Print dans un fichier texte ajoute un retour à la ligne a chaque fois ... Teste mon code et tu verras que c'est nickel ...

Christophe
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 sept. 2005 à 13:31
pour éviter les guillements, il faut remplacer "print" par "write"

pour entrée, il faut ajouter keycode = 0 (avant d'appeler le click) pour ne pas beeper
PCPT
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 sept. 2005 à 13:33
pcpt < Chez moi, le Print ne rajoute pas de guillemets !!!et pour éviter le beep avec un keycode = 0, je l'oubli a chaque fois que je fais ce code, et j'y repense une fois que j'ai tester mon interface et qu'il m'a cassé les oreilles une fois ou deux ...
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 sept. 2005 à 13:39
pcpt < Je dirais même que c'est l'invers !!! C'est Write qui colle des guillemets ...

christophe.

P.S. : Petite question qui n'a rien à voir avec ce post, ni même la programmation en VB en particulier ni meme la prog en générale:
Pourquoi est-ce que 90% des gens qui tape le mot "GUILLEMET" sur leur clavier rajoute un "N" devant le "T" ... moi le premier !!!!! Une abérration du cerveau humain ??
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 sept. 2005 à 14:02
sans doute parce que c'est une erreur qui ne fait pas "beep"
(print write, un des deux fait le chr(34) mais je ne sais plus lequel^^)
PCPT
0
Rejoignez-nous