Enregistrer textbox [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Hello


J’ai trouvé beaucoup d’exemple sur le forum, mais je n’arrive pas à faire ce que je veux.



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 





 Je veux que le contenue de 3 textbox soient enregistrée dans un fichier txt qui est créé en même temps que je clique sur un bouton « sauver ».


Quand je lance mon programme que les nouvelles valeurs soient récupérées et placés dans mes 3 textbox et que je puisse réenregistrer des nouvelles valeurs qui vont remplacer les anciennes.


Merci de m’aider.

18 réponses

Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Sauvegarde :
Dim Fn As Long

Fn = FreeFile
Open "Fichier.txt" For Output As #Fn
Print #Fn, textbox1.Text & vbCrLf & txtbox2.Text & vbCrLf & txtbox3.Text
Close #Fn

Lecture :
Dim Fn As Long
Open "Fichier.txt" For Input As #Fn
Line Input #Fn,textbox1.Text
Line Input #Fn,textbox2.Text
Line Input #Fn,textbox3.Text
Close #Fn
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Oui, il est possible qu'on n'ait pas le droit d'affecter directement un objet avec "Line Input #"
   Line Input #Fn, sTemp
   textbox1.Text = sTemp

Pour l'écriture du fichier, bien que cela ne change rien au résultat, j'opterais pour cette syntaxe plus claire :
   Print #Fn, txtbox1.Text
   Print #Fn, txtbox2.Text
   Print #Fn, txtbox3.Text
au lieu de l'écriture en ligne unique qui oblige à ajouter soi-même des retours.

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)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
Af_Cis.SetIniSettings et
Af_Cis.GetIniSettings sont les seules méthodes il me semble donc oui c'est un possibilité, mais pas à la suite : çà n'a absolument aucun intérêt
autre possibilité : par exemple sauvegarder le contenu de tes zones 4 et 5 dans des VARIABLES au moment où elles sont comme tu les veux à l'ouverture, et faire juste Text4.text variable1 et Text5.text variable2 au form_unload juste avant l'appel Af_Cis.SetIniSettings

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Merci Kristof_Koder<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>









Désolé je débute vraiment.












J’ai un message d’erreur :










Erreur de compilation:







Variable requise.impossible de l'affecter à cette expression







 





Line Input #Fn, Text1.Text
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Effectivement ! vu l'heure qu'il est, j'ai mes deux neurones qui font des scoubidous !!
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Erreur d'execution '52':
Nom ou numéro de fichier incorrect

Open "Fichier.txt" For Input As #Fn


Voila le bout de code:


'Lecture:
Dim Fn As Long
Dim sTemp, sTemp2, sTemp3
Open "Fichier.txt" For Input As #Fn
Line Input #Fn, sTemp
Text1.Text = sTemp
Line Input #Fn, sTemp2
Text2.Text = sTemp2
Line Input #Fn, sTemp3
Text3.Text = sTemp3
Close #Fn


Dsl de vous enbèter avec ca
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

ou plus simplement tu peux utiliser cette source
++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Merci Monsieur PCPT



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je voudrais bien comprendre mon erreur quand même ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
l'erreur est dûe à fn qui est à 0, il manque fn=freefile
(qui est d'ailleurs un integer, pas un long)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Merci beaucoup
Arfff encore une erreur

Private Sub Form_Load()
'Lecture:
Dim Fn As Integer
Dim sTemp, sTemp2, sTemp3
Fn = FreeFile
Open "Fichier.txt" For Input As #Fn
Line Input #Fn, sTemp
Text1.Text = sTemp
Line Input #Fn, sTemp2
Text2.Text = sTemp2
Line Input #Fn, sTemp3
Text3.Text = sTemp3
Close #Fn
End Sub

erreur d'execution '62':
l'entrée dépasse la fin de fichier

Line Input #Fn, sTemp

Private Sub Form_Unload(Cancel As Integer)
'Sauvegarde:
Dim Fn As Integer
Fn = FreeFile
Open "Fichier.txt" For Output As #Fn
Print #Fn, Text1.Text & vbCrLf & Text2.Text & vbCrLf & Text3.Text
Close #Fn
End Sub

avec votre contrôle

erreur de compilation:
Variable non définie

Af_Cis.SetIniSettings
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
euh..... y'a une source hein ^^
faut pas juste copier les 2 lignes mais poser le composant (la source) sur ta form et le nommer "Af_Cis"

heureusement qu'il y a un exemple fourni

et évidemment le but du control est de ne pas avoir tout le reste du code à saisir...
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Oups.
Merci C’est ok.
Monsieur PCPT  peut on exclure la  sauvegarde d’un ou plusieurs contrôles ?
Sauver les textbox 1, 2 et 3 mais pas les 5 et 6.

Je veux enregistrer les modifications et les recharger par un clique sur un bouton.
Private Sub Command1_Click()
Af_Cis.SetIniSettings
Af_Cis.GetIniSettings
End Sub
Ca marche mais est ce la solution ?
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Ok je croix que j'ai compris

' Déclaration de variables
Dim Temp1 As Integer
Dim Temp2 As Integer

Dans ma sub form load
Temp1 = Text5.Text
Temp2 = Text6.Text

Dans ma sub form unload
Text5.Text = Temp1
Text6.Text = Temp2

Monsieur PCPT peut on revenir a mon probleme please? poste du 10/11/2007 11:10:03.
suite a mon message d'erreur, je veux comprendre.


 
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
ton fichier ne devait pas contenir de ligne

s'il n'existait pas tu aurais l'erreur 52 donc là c'est juste qu'il est vide (puisqu'erreur sur le premier line input)
++
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Ça ne répond peut-être pas à ta question, mais je te suggères de mettre un chemin à ton fichier... quelque chose comme App.Path, si tu es sous VB6

Open App.Path & "\Fichier.txt" For Output As #Fn

MPi²
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Hello
Si j’ai bien compris Fn représente le non du fichier "FileName"
Peut on m’expliquer pourquoi Fn = FreeFile ?
Que représente FreeFile ?
Que représente # dans "Open App.Path & "\Fichier.txt" For Output As #Fn" ?<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>Merci
Hanns
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Bon pour FreeFile, après recherche voila ce que j’ai trouvé :




La fonction FREEFILE demande a Windows d'attribuer une adresse mémoire libre en fonction des ressources en cours d'utilisation. Elle permet donc d'éviter tout risque de tenter de travailler à une adresse déjà allouée, ce qui dans ce cas génère un conflit.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
n'hésite pas à utiliser le touche [F1]

et tu as aussi une FAQ à ta dispo
http://www.vbfrance.com/doc/faq.aspx#vb_fichier

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp