cs_HANNS
Messages postés17Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention14 novembre 2007
-
10 nov. 2007 à 00:27
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
14 nov. 2007 à 07:33
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.
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 10 nov. 2007 à 01:06
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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 10 nov. 2007 à 02:09
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)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 nov. 2007 à 21:28
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
cs_HANNS
Messages postés17Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention14 novembre 2007 10 nov. 2007 à 02:54
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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 nov. 2007 à 10:05
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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 nov. 2007 à 10:41
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
cs_HANNS
Messages postés17Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention14 novembre 2007 10 nov. 2007 à 11:10
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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 10 nov. 2007 à 11:33
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
cs_HANNS
Messages postés17Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention14 novembre 2007 10 nov. 2007 à 21:12
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 ?
cs_HANNS
Messages postés17Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention14 novembre 2007 14 nov. 2007 à 00:35
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
cs_HANNS
Messages postés17Date d'inscriptionmardi 6 novembre 2007StatutMembreDernière intervention14 novembre 2007 14 nov. 2007 à 00:55
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" /??>