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

[Résolu]
Signaler
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004
-
Messages postés
140
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2006
-
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

Messages postés
35
Date d'inscription
dimanche 20 juin 2004
Statut
Membre
Dernière intervention
13 septembre 2004

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
140
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2006

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
37
Date d'inscription
mardi 20 juillet 2004
Statut
Membre
Dernière intervention
25 août 2004
1
Pourquoi tu ne fais pas un fichier ce conf pour ton appli, et tu mets le path dans ce fichier.

++
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

merci pour ta reponse

... mais ce conf???

Pas compris dsl

2+
Messages postés
140
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2006

Hello...

Avec les instructions GetSetting et SaveSetting, ça devrait être très simple à mettre en oeuvre...
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

oky merci !!

je vais tenter vos deux solutions

A plus!

Et comme dirait l'autre : mouk mouk
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

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... "
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

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... "
Messages postés
140
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2006

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
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

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!
Messages postés
61
Date d'inscription
lundi 7 juin 2004
Statut
Membre
Dernière intervention
6 décembre 2004

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... :-)"
Messages postés
140
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2006

"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.
Messages postés
140
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
16 décembre 2006

Ok, ne pas tenir compte de mon dernier message qui arrive après la bataille... ;)

RicoNuch