Mémoriser un chemin après fermeture appli!!

Résolu
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004 - 19 août 2004 à 09:56
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006 - 19 août 2004 à 15:23
Bonjour!

J'ai une appli qui permet à l'utilisateur de spécifier où il veut créer les répertoires pour y bosser mettre ses fichiers.

Le problème c que cette opération n'est effectuée qu'une première pour l'utilisateur. Est ce quelq'un pourrait me dire comment mémoriser le chemin choisi même après fermeture de l'exe.

En gros, jai une form CreaFold avec une dirlist, un drivelist et une filelist et tout le reste de l'appli s'appuie sur CreaFold.dir1.path. Vous comprenez le pb? C lourd pour l'utilisateur de venir à chaque ouverture du prog dans CreaFold et revalider son chemin de répertoire.

Sinon, j'avaos pensé à mettre une textebox où on y viendrait coller le chemin à partir de l'explo window mais je sais pas comment faire pour le lier au dir1.path.

euh je sais pas si c clair mais merci pour ceux qui m'ont compris!

A bientot!!

++

Dark

13 réponses

MDBen_pff Messages postés 35 Date d'inscription dimanche 20 juin 2004 Statut Membre Dernière intervention 13 septembre 2004
19 août 2004 à 10:21
Salut
Tu peux utiliser un fichier .ini, c pas très compliqué, moi je place ces instruction dans un module séparé :
Dans les déclarations
'nécessaire pour lire/écrire dans fichier ini
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

puis ajoute ces deux fonctions :
Public Function EcritDansFichierIni(Section As String, Cle As String, _
                                     Valeur As String, Fichier As String) As Long
EcritDansFichierIni = WritePrivateProfileString(Section, Cle, Valeur, Fichier)
End Function

Public Function LitDansFichierIni(Section As String, Cle As String, Fichier As String, _
    Optional ValeurParDefaut As String = "") As String
Dim strReturn As String
strReturn = String(255, 0)
GetPrivateProfileString Section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier
LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)
End Function

Un fichier ini est organiser par section dans lequel il se trouve des clés auquelles on donne une valeur, par exemple :
[Dir]
chemin=\\BNTHEMO\DOSSOC$\dosoc.mdb
Convergence=\\BNTHEMO\DOSSOC$\Antériorité de Séjour.mdb
etc ...

Bon code a+++
MDBen

Et n'oubliez pas le tag "Réponse acceptée" ! 8-)
3
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
19 août 2004 à 14:29
Il y a des erreurs dans mon dernier message, ne tenir compte que de celui ci :

Hello...

Les arguments appname, section, key : peu importe les noms que tu donnes, il faut juste veiller à bien réutiliser les mêmes noms dans les instructions SaveSetting et GetSetting.

Exemple :

Récupérer un chemin dans la variable strPathBase

Dim strPathBase As String
strPathBase = GetSetting("VentePart", "Config", "PathBase", "Non défini")

"VentePart" = nom de l'appli
"Config" = section
"PathBase" = clef
"Non défini" = valeur par défaut si aucune entrée dans le registre ne correspond.

Et pour sauvegarder avant fermeture de l'appli :
Les paramètres ont la même signification que dans GetSetting.
La valeur à sauvegarder est contenue dans la variable strPathBase

SaveSetting "VentePart", "Config", "PathBase", strPathBase
3
Epoque51 Messages postés 37 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 25 août 2004 1
19 août 2004 à 10:01
Pourquoi tu ne fais pas un fichier ce conf pour ton appli, et tu mets le path dans ce fichier.

++
0
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004
19 août 2004 à 10:03
merci pour ta reponse

... mais ce conf???

Pas compris dsl

2+
0

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

Posez votre question
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
19 août 2004 à 10:06
Hello...

Avec les instructions GetSetting et SaveSetting, ça devrait être très simple à mettre en oeuvre...
0
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004
19 août 2004 à 10:25
oky merci !!

je vais tenter vos deux solutions

A plus!

Et comme dirait l'autre : mouk mouk
0
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004
19 août 2004 à 13:02
Heu j'arrive pas à bien utiliser Getsetting et savesetting...

Je comprends pas bien les paramètres, kes vraiment kune section? de plus mon getsetting n'est pas bien pris, il prend pas mon nom d'appli et me dit "expected variable or procedure, not project" je croyais que cete le nom de mon programme?

Dans section jai mis le nom de ma form "creafold" apres la clé rien et.... chus perdu quoi...

Merci!

"j'aime bien y arriver... "
0
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004
19 août 2004 à 13:02
Heu j'arrive pas à bien utiliser Getsetting et savesetting...

Je comprends pas bien les paramètres, kes vraiment kune section? de plus mon getsetting n'est pas bien pris, il prend pas mon nom d'appli et me dit "expected variable or procedure, not project" je croyais que cete le nom de mon programme?

Dans section jai mis le nom de ma form "creafold" apres la clé rien et.... chus perdu quoi...

Merci!

"j'aime bien y arriver... "
0
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
19 août 2004 à 14:26
Hello...

Les arguments appname, section, key : peu importe les noms que tu donnes, il faut juste veiller à bien réutiliser les mêmes noms dans les instructions SaveSetting et GetSetting.

Exemple :

Récupérer un chemin dans la variable strPathBase

Dim strPathBase As StringstrPathBase GetSetting("CapHorn", "Config", "PathBase", "Non défini")' "VentePart" nom de l'appli

"Config" = section
"PathBase" = clef
"Non défini" = valeur par défaut si aucune entrée dans le registre ne correspond.

Et pour sauvegarder avant fermeture de l'appli :
Les paramètres ont la même signification que dans GetSetting.
La valeur à sauvegarder est contenue dans la variable strPathBase

SaveSetting "VentePart", "Config", "PathBase", strPathBase
0
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004
19 août 2004 à 14:54
en fait ce ke je ne comprends pas c comment mon chemin va être mémorisé?

est ce par l'appel du save ds la form creafold?

Parce que je sais que Getsetting se trouve au lancement de l'appli... Est ce que section a un lien quelconque avec l'appli?

Merci!
0
cs_darkbol Messages postés 61 Date d'inscription lundi 7 juin 2004 Statut Membre Dernière intervention 6 décembre 2004
19 août 2004 à 15:08
euh ok tas raison ya juste besoin d'utiliser les même noms

ca marche bien! merci

Au passage ini marche aussi...

mais getsetting fait moins de code

Merci à tous les deux!!!

+++++

8-)

"j'aime bien programmer... :-)"
0
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
19 août 2004 à 15:20
"AppName", "Section" et "Key" ne sont que des libellés que tu nommes de la façon qui t'arrange et qui te permettent de classer les paramètres de tes applis à la façon "Dossier/Sous-dossier".

Tu "mémorises" avec SaveSetting. A la fermeture de ton appli, fais :
SaveSetting "TonAppli", "TaSection", "TaClef", CreaFold.dir1.path

Au démarrage, fait :

CreaFold.dir1.path = GetSetting("TonAppli", "TaSection", "TaClef", "C:")

Il est évident que lors du premier démarrage, alors que SaveSetting n'aura encore jamais été exécutée, tu ne récupèrera aucune autre valeur que la valeur par défaut (dans cet exemple : C:\). Ce n'est qu'au démarrage suivant, quand l'appli aura exécuté SaveSetting avant la fermeture, que ton DirListBox prendra la valeur enregistrée.
0
RicoNuch Messages postés 140 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 16 décembre 2006
19 août 2004 à 15:23
Ok, ne pas tenir compte de mon dernier message qui arrive après la bataille... ;)

RicoNuch
0
Rejoignez-nous