Sauvegarde TextBox [Résolu]

Signaler
Messages postés
11
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
20 septembre 2004
-
 Utilisateur anonyme -
Salut,

Suite à discussion sur le forum j'ai pu réaliser une petite manip avec le code ci dessous.....Cela marche, j'arrive à retrouver mes nombres sur le fichier .text par contre impossible à les charger, a priori il doit y avoir une icomprehension entre text et nombre....Bref est-ce qu'une personne disponible pourrait jeter un oeuil la dessus et m'indiquer ce que je dois mettre en fin de programme pour réafficher mes trois valeurs .Merci de me filer un coup de main !

Option Explicit

Dim F As Integer

Dim r1 As Integer
Dim r2 As Integer
Dim r3 As Integer

Private Sub BtSave_click()
F = FreeFile
Open "c:\MonFich.txt" For Binary As F

r1 = Val(Resultat1.Text)
r2 = Val(Resultat2.Text)
r3 = Val(Resultat3.Text)

Resultat1 = r1
Resultat2 = r2
Resultat3 = r3

Put F, , CStr(r1)
Put F, , CStr(r2)
Put F, , CStr(r3)
Close F
End Sub

Private Sub BtOpen_click()
F = FreeFile
Open "c:\MonFich.txt" For Binary As F

Get F, , r1.......""""Ici il y a un probleme ! ! ! !""""
Get F, , r2
Get F, , r3
Close F
End Sub

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut cm75201
Pourquoi utilises-tu le fichier en Binary ?
Ne te complique pas la vie :
Tu écris et relis toutes les données en même temps, alors le Binary ne s'impose pas
Utilises plutôt cette syntaxe simple :
Pour écrire :
Open "MonFichier.txt" For Output As #F
Print #F, Resultat1.Text  ' sauvegarde en String
...
Close #F
Pour Lire :
Open "MonFichier.txt" For Input As #F
Line Input #F, Resultat1.Text  ' Range 1ere données dans TextBox
Line Input #F, VarTemp$ ' ou bien lit en String
MaVarInteger = Val(VarTemp$) ' puis convertis le en Integer
...
Close #F

De plus, tu as tendance à mélanger les types :
- Tu transformes Resultat1.Text en Integer
Puis tu réécris l'Integer dans Resultat1 : Là, tu demandes à VB de faire une transformation implicite d'un Integer en String : Quelques fois, ça peut poser problème, méfie-toi.
- Ou encore, tu transformes Resultat1.Text en Integer et tu sauvegardes les données en String avec le CStr(...) : Beaucoup de trafic pour pas grand chose.

Vala
Jack
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 82 internautes nous ont dit merci ce mois-ci

Messages postés
11
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
20 septembre 2004

Je te remercie pour ta réponse.....Je suis d'accord avec toi, je confond encore pas mal de chose et ce n'est pas encore la haute maitrise... ! !
Donc c'est bon j'ai réussi à finir mon premier topo ! !
Mais si cela ne t'embete pas, j'avais forcement une deuxième question : Et maintenant si je voulais ouvrir une boite de dialogue pour entrer n'importe quel nom de fichier....As tu des indications à me fournir pour que je puisse travailler sur ce sujet ! ! Je te montre à quoi ressemble ma bidouille maintenant :

Option Explicit

Dim f As Integer

Dim D1 As Double
Dim D2 As Double
Dim D3 As Double

Dim r1 As Double
Private Sub Command1_Click()

D1 = Val(Saisie1.Text)
D2 = Val(Saisie2.Text)
D3 = Val(Saisie3.Text)

r1 = D1 + D2 + D3

Resultat = r1

End Sub

Private Sub BtSave_click()
f = FreeFile
Open "c:\MonFich.txt" For Output As #f
Print #f, , Resultat
Close #f
End Sub

Private Sub BtOpen_click()

f = FreeFile
Open "c:\MonFich.txt" For Input As #f
Input #f, r1
Resultat = r1
Close #f

merci.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
re cm75201
Dans ton code, dans le "Print #f,, Resultat", il y a une virgule de trop (syntaxe différente de celle du Put)
Pour sélectionner un fichier, regarde le controle CommonDialog que tu peux ajouter à ton projet en faisant un Ctrl-T et en choisissant le "Microsoft Common Dialog Control 6.0".
Regarde dans l'aide pour t'en servir (méthode ShowOpen)

Vala
Jack
Messages postés
11
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
20 septembre 2004

Merci beaucoup ! !

salut,

est-ce que quelqu'un aurait le même code pour VB .NAT svp ?

pardon VB.NET