Sauvegarde variable

Résolu
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011 - 3 févr. 2009 à 20:28
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 4 févr. 2009 à 09:41
bonjour,

voila mon problème.....

dans un prog j'ai un tableau défini de la sorte

Dim test(255) As Boolean

il faut qu'à chaque fois qu'une valeur de ce tableau change, un fichier texte soit modifié

j'ai donc procédé comme suit :

Open App.Path + "\temp.txt" For Output As #3
For a = 0 To 255
Print #3, a & " " & test(a)
Next a
Close #3

ce qui me donne le résultat suivant dans mon fichier texte

12 Faux
13 Faux
14 Vrai
15 Faux
16 Faux

Ce qui me convient parfaitement, puisque ce fichier doit pouvoir être lu par un editeur de texte ..

Par contre, à l'ouverture de mon prog, il faut que celui-ci récupère les valeurs pour les remettre dans mon tableau. il faut donc aller relire ce fichier texte.

Comment faire ?
Est-ce la bonne solution que j'ai choisi pour sauvegarder mes variables ( en cas de plantage du prog par exemple). Je pensais aussi écrire dans la base de registre, mais dans ce cas, on ne pourrait plus lire les infos depuis NOTEPAD par exemple.

Merci d'avance

Alain

(pour info... pour ceux qui répondent régulièrement à  mes questions, je fais un prog de supervision des alarmes pour une centrale Aritech de type MASTER.... une fois terminé, je mettrais la sources sur vbfrance même si cela peut interresser très peu de gens vu la spécificité)

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 févr. 2009 à 09:40
Re
Oui, du moment que tu sauvegardes exactement les données, tu pourras les relire.
Ta méthode de sauvegarde définit comment tu devras les relire, c'est tout.
Dans ton cas, à la lecture de "32 Vrai", il te suffit d'isoler le 32 et le Vrai, puis de faire l'éventuelle convertion qui va bien pour retranformer le texte "Vrai" en True logique, un simple If ou IIf suffira.
Ta méthode fonctionnera, elle n'est peut être pas la plus rapide, mais elle est correcte.
Dans la mesure où ces données doivent pouvoir être interprétées visuellement, il vaut mieux conserver ta solution.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 févr. 2009 à 09:41
PS : Pour isoler 32 et Vrai, une simple méthode avec Instr ou un Split fera l'affaire
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 févr. 2009 à 20:40
Salut
La réponse est sur le site, suffit de chercher "lire fichier" parmi les Codes en excluant .Net

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_rescator68 Messages postés 24 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 5 novembre 2011
3 févr. 2009 à 20:53
oui merci Jack, mais cela ne répond pas à ma seconde question... ais-je choisi la bonne solution pour sauvegarder des variables ?
0

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

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
3 févr. 2009 à 21:40
Bonjour,
la solution que tu as choisie n'est ni meilleure ni moins bonne.
En ce qui concerne la "récupération" par lecture du fichier, Jack t'a répondu.

J'ajoute simlplement que, personnellement, je ne stockerais pas des "vrais" et des "faux", mais procèderais ainsi (exemple à comprendre facilement)


Private Sub Command1_Click()
  Open "d:\essai.txt" For Output As #1
    Print #1, -1
    Print #1, 0
  Close #1
  Open "d:\essai.txt" For Input As #1
    Input #1, quoi
    MsgBox quoi = True
    Input #1, quoi
    MsgBox quoi = True
  Close #1
End Sub


 
0
Rejoignez-nous