Sauvegarde TextBox

Résolu
cm75201 Messages postés 11 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 20 septembre 2004 - 18 sept. 2004 à 15:25
 Utilisateur anonyme - 21 déc. 2005 à 13:49
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

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
18 sept. 2004 à 16:18
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
cm75201 Messages postés 11 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 20 septembre 2004
18 sept. 2004 à 18:19
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.
0
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
18 sept. 2004 à 18:29
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
0
cm75201 Messages postés 11 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 20 septembre 2004
18 sept. 2004 à 18:39
Merci beaucoup ! !
0

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

Posez votre question
Utilisateur anonyme
21 déc. 2005 à 13:48
salut,

est-ce que quelqu'un aurait le même code pour VB .NAT svp ?
0
Utilisateur anonyme
21 déc. 2005 à 13:49
pardon VB.NET
0
Rejoignez-nous