Valeur de 10 texbox a sauvegarder et à restaurer...

cs_sachab Messages postés 15 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 9 octobre 2003 - 30 sept. 2003 à 16:21
titi57000 Messages postés 20 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 13 mars 2004 - 8 mars 2004 à 19:27
Bonjour,

J'ai un FormReglage avec 10 textbox. ces textbox sont modifiés par l'utilisateur à sa convenace et doivent etre sauvegardés par validation sur un BtOk. Au chargement ses 10 textbox doivent avoir les données préalablement valider . Comment faire pour qu'a chaque démarrage de l'application ses 10 textbox contiennent les données précédemment sauvegardées par l'utilisateur.

Merci

SVP un bout de code serait le bien venu.

7 réponses

cs_Lolux Messages postés 159 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 septembre 2005
30 sept. 2003 à 16:39
Bha... Il faut sauver les données qq part (BDD, Fichier Texte, INI, Base de registre...)
Quand l'utilisateur rempli les champs et une fois qu'ils sont validés tu les enregistres.
Lorsque la Form est rappelé, tu va chercher les données et tu rempli tes TxtBox.

Donc il faut d'abord que tu nous dise où sont sauvegardées tes données.

Tu peux utiliser un fichier INI. Il y a des sources sur ce site qui explique l'utilisation d'API spéciales et très faciles à comprendre.

A plus

Lolux
0
cs_sachab Messages postés 15 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 9 octobre 2003
30 sept. 2003 à 17:08
Bonjour,

Pour l'instant les données sont sauvegardées nulles part.
Un fichier ini conviendrait.

J'ai oublié, je suis débutant, alors si vous pouvez me guider au plus simple ce serait sympa.

Un code source avec explication

Merci a vous
0
cs_Lolux Messages postés 159 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 septembre 2005
30 sept. 2003 à 17:28
J'en parlais à l'instant sur un autre message du forum :

Etre débutant c'est bien et grace à ce site on peu progresser rapidement, mais cela implique de faire quelques efforts...

L'outil de recherche est en autre là pour ça. Et comme je le soulignais dans mon précédent message, il y a des soucres très bien concernant les fichiers INI sur ce site...

Alors voici une petite leçon d'utilisation du site :

En haut de la page il y a une rubrique qui s'appelle "Rechercher sur le site"... A quoi cela peut il bien servir ??? Mais c'est bien sur !!! Ca sert à chercher sur le site !!!

Alors je tappe dans la cellule prévue à cet effet (pas trop fort pour ne pas casser mon clavier) : "ecrire INI"

Miracle !!! Ca marche comme sur google !!! Ya plein de réponses et la première s'appelle :
LIRE/ECRIRE/SUPPRIMER DANS UN FICHIER INI GRÂCE AUX APIS WINDOWS

Super !!!! C'est ce que je veux !

Alors je clique sur le lien pour voir un peu ce que ça donne...

Encore un miracle !!! Ca fait deux en moins d'une minute !!!
Une personne est passée sur ce site et a déposé un code source bien commenté pour que je puisse comprendre !
Bha voilà je vais pouvoir continuer mon programme... Cool !

Bon trève de plaisenterie, Je ne t'en veux pas, mais pour progresser et aller vite, il faut aussi savoir se débrouiller seul.
Si vraiment tu est bloqué alors là tu peut et tu dois demander de l'aide. C'est normal.
Je suis loin d'être un excellent développeur VB mais je me débrouille et ce site m'a beaucoup aidé. Tu demande du source ? Sache qu'il y a surement qqun sur ce site qui c'est déjà eu le même problème que toi. Donc avant de demander regarde si la question n'a pas déjà été posée ou si un source n'existe pas déjà.

A plus et bonne continuation,

Lolux
0
cs_sachab Messages postés 15 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 9 octobre 2003
30 sept. 2003 à 20:50
Bonsoir, et merci pour ce cours de recherche.

J'ai bien vue ce post http://www.vbfrance.com/code.aspx?ID=7885 il parle en effet de se que je recherche, mais comme je le disais, je suis debutant et j'y comprends pas grand chose.

Je cherche dans se post ou placer mets texbox, et si vous pouvez m'expliquer a quoi correspond ce qui est appelé ici : Entete, Variable, Valeur, Fichier dans
EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier).

Merci pour ce complement d'info.
0

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

Posez votre question
cs_Lolux Messages postés 159 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 15 septembre 2005
1 oct. 2003 à 11:20
Alors voici qq infos :

Tout d'abord, voici comment se compose un Fichier INI :

[Entête1]
Var1= valeur1
Var2=valeur2

[Entête2]
Var3=valeur3
Var4=valeur4


IMPORTANT : Il faut savoir que tout le code doit être placé dans un module.

Les trois premières fonctions sont des appels d'API. Donc tu les place en tête de module et tu n'y touche pas :

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
    "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
    lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString _
    As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
    "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
    lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
    "WritePrivateProfileSectionA" ( _
     ByVal lpAppName As String, _
     ByVal lpString As Any, _
     ByVal lpFileName As String) As Long


Il y a ensuite les Fonctions qui permettent d'utiliser l'API en appelant les fonctions déclarées juste avant :

Les variables utilisées sont les suivantes :
Entete est le nom de la secion que tu veux ateindre,
Variable est le nom de la variable que tu veux ateindre,
Fichier (optionel) est le chemin du fichier à lire (ex: C:\Rep\MyFile.ini). Si tu n'entre rien le fichier par défaut se trouvera dans le rep de l'application avec le nom de l'application et l'extention ".ini"

Il y a ensuite 4 fonction de gestion :
- Lire une valeur : INIRead
- Ecrire une valeur : INIWrite
- Supprimer un valeur : INIDelete
- Supprimer une section : INIDeleteSection

INIRead :
'Fonction pour lire une valeur dans un fichier INI
Function INIRead(Entete As String, Variable As String, Optional Fichier As String) As String    Fichier  IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
    INIRead = String(255, Chr(0))
    INIRead = Left$(INIRead, GetPrivateProfileString(Entete, ByVal Variable, "", INIRead, Len(INIRead), Fichier))
End Function


INIWrite :
'Fonction pour écrire une valeur dans un fichier INI
'La section spécifiée est créée automatiquement si elle n'existe pas déjà
Function INIWrite(Entete As String, Variable As String, Valeur As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
    EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function


INIDelete :
'Fonction pour supprimer une valeur dans un fichier INI
Function INIDelete(Entete As String, Variable As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
    SupprINI = WritePrivateProfileString(Entete, Variable, 0&, Fichier)
End Function


INIDeleteSection :
'Fonction pour supprimer une section dans un fichier INI
Function INIDeleteSection(Entete As String, Optional Fichier As String) As String    Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
    SupprSectionINI = WritePrivateProfileSection(Entete, 0&, Fichier)
End Function


Il ne te reste plus qu'a appeler les 4 fonction dans ta form :

Pour enregistrer tes TxtBox :
Dim str as string
str = INIWrite("MonEntêteàMoi", "Valeur1",TxtBox1.text,"C:\MyIniFile.ini")
str = INIWrite("MonEntêteàMoi", "Valeur2",TxtBox2.text,"C:\MyIniFile.ini")
'... etc ...


Pour lire le INI et remplir tes TxtBox à l'ouverture de la form :
Dim MyValue as string
MyValue = INIRead("MonEntêteàMoi", "Valeur1","C:\MyIniFile.ini")
TxtBox1.text = MyValue
MyValue = INIRead("MonEntêteàMoi", "Valeur2","C:\MyIniFile.ini")
TxtBox2.text = MyValue
'... etc ...


Pour les deux autres fonctions tu saura te démerder.

Bon, si avec ça tu t'en sort pas...

A plus,

Lolux
0
cs_sachab Messages postés 15 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 9 octobre 2003
1 oct. 2003 à 12:07
Bonjour,

Merci pour ce cours.

C'est Clair Net et Précis.

Merci encore tout est OK
0
titi57000 Messages postés 20 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 13 mars 2004
8 mars 2004 à 19:27
mecri lolux , c'est grace a des gars comme toi que les newbies peuvent progresser,heureusement qu'il y a sur le forum des gens cool pour aider ceux qui debutent.
titi57000
0
Rejoignez-nous