OVH Cloud OVH Cloud

Common dialog 6

4 réponses
Avatar
Pascal
Bonjour à tous et toutes,

je sais comment utiliser le common dialog 6 (boite OUVRIR) pour récupérer un
nom de fichier texte ou autre mais ne sais comment récupérer le nom du
dossier

En effet la boite Ouvrir oblige à descendre toute l'arborescence
moi je désirerai pouvoir m'arreter avant et récuperer le nom du dossier
Petit exemple vaut mieux qu'un long discours:
dans C:\MonProg\Val1\Cotes\Juin.txt
j'aimerai récupérer uniquement C:\MonProg\Val1\Cotes
Comment faire?

merci de votre aide, idée

Pascal

4 réponses

Avatar
Ivan Pequeño
Attention
je nái pas un clavier francais, donc les accents...ce que je peux

Bonjour
Dans la section déclarations

Private _
Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Private _
Declare Function SHBrowseForFolder& _
Lib "shell32" _
(lpbi As BrowseInfo)




Public Function Carpetas(ObjFrm As Object, Optional Titulo$) As String

Dim ID As Long

Dim SRet As String, _
Titre As String

Dim Barre As BrowseInfo

Titre = IIf(Len(Titulo$) = 0, "Carpetas", Titulo$)

With Barre
.hWndOwner = ObjFrm.hwnd
.lpszTitle = LStrCat(Titre, "")
.ulFlags = BIF_RETURNONLYFSDIRS _
+ BIF_DONTGOBELOWDOMAIN
End With

ID = SHBrowseForFolder(Barre)

If ID Then
SRet = Space(MAX_PATH)
SHGetPathFromIDList ID, SRet
SRet = Left(SRet, InStr(SRet, vbNullChar) - 1)
Carpetas = SRet
End If

End Function

Il se pourrait qu'il manque quelque chosse, dans ce cas envouyez-moi
un mail a (au Chili)

j'espére que ceci vous sera dútilité
Avatar
Pascal
Hello Ivan
merci pour ta réponse et le temps consacré
entre temps j'avais fait ceci : (similaire)
il fait beau au chili? ici (belgique) maussade

Private _
Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Public Function SelectFolder(Titre As String, Handle As Long) As String
'sélectionne un répertoire
Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo

strTitre = Titre
With tBrowseInfo
.hWndOwner = Handle
.lpszTitle = lstrcat(strTitre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With

lpIDList = SHBrowseForFolder(tBrowseInfo)

If (lpIDList) Then
strBuffer = String(260, vbNullChar)
SHGetPathFromIDList lpIDList, strBuffer
SelectFolder = left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If

End Function


"Ivan Pequeño" a écrit dans le
message de news:
Attention
je nái pas un clavier francais, donc les accents...ce que je peux

Bonjour
Dans la section déclarations

Private _
Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Private _
Declare Function SHBrowseForFolder& _
Lib "shell32" _
(lpbi As BrowseInfo)




Public Function Carpetas(ObjFrm As Object, Optional Titulo$) As String

Dim ID As Long

Dim SRet As String, _
Titre As String

Dim Barre As BrowseInfo

Titre = IIf(Len(Titulo$) = 0, "Carpetas", Titulo$)

With Barre
.hWndOwner = ObjFrm.hwnd
.lpszTitle = LStrCat(Titre, "")
.ulFlags = BIF_RETURNONLYFSDIRS _
+ BIF_DONTGOBELOWDOMAIN
End With

ID = SHBrowseForFolder(Barre)

If ID Then
SRet = Space(MAX_PATH)
SHGetPathFromIDList ID, SRet
SRet = Left(SRet, InStr(SRet, vbNullChar) - 1)
Carpetas = SRet
End If

End Function

Il se pourrait qu'il manque quelque chosse, dans ce cas envouyez-moi
un mail a (au Chili)

j'espére que ceci vous sera dútilité




Avatar
Ivan Pequeño
Ravi que ca aie pu t'aider

Nous sommes en plein hiver
et il fait dans les 18 degrées

c'est de la folie

á +

"Pascal" escribió:

Hello Ivan
merci pour ta réponse et le temps consacré
entre temps j'avais fait ceci : (similaire)
il fait beau au chili? ici (belgique) maussade

Private _
Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type

Public Function SelectFolder(Titre As String, Handle As Long) As String
'sélectionne un répertoire
Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo

strTitre = Titre
With tBrowseInfo
.hWndOwner = Handle
.lpszTitle = lstrcat(strTitre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With

lpIDList = SHBrowseForFolder(tBrowseInfo)

If (lpIDList) Then
strBuffer = String(260, vbNullChar)
SHGetPathFromIDList lpIDList, strBuffer
SelectFolder = left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If

End Function


"Ivan Pequeño" a écrit dans le
message de news:
> Attention
> je nái pas un clavier francais, donc les accents...ce que je peux
>
> Bonjour
> Dans la section déclarations
>
> Private _
> Type BrowseInfo
> hWndOwner As Long
> pIDLRoot As Long
> pszDisplayName As Long
> lpszTitle As Long
> ulFlags As Long
> lpfnCallback As Long
> lParam As Long
> iImage As Long
> End Type
>
> Private _
> Declare Function SHBrowseForFolder& _
> Lib "shell32" _
> (lpbi As BrowseInfo)
>
>
>
>
> Public Function Carpetas(ObjFrm As Object, Optional Titulo$) As String
>
> Dim ID As Long
>
> Dim SRet As String, _
> Titre As String
>
> Dim Barre As BrowseInfo
>
> Titre = IIf(Len(Titulo$) = 0, "Carpetas", Titulo$)
>
> With Barre
> .hWndOwner = ObjFrm.hwnd
> .lpszTitle = LStrCat(Titre, "")
> .ulFlags = BIF_RETURNONLYFSDIRS _
> + BIF_DONTGOBELOWDOMAIN
> End With
>
> ID = SHBrowseForFolder(Barre)
>
> If ID Then
> SRet = Space(MAX_PATH)
> SHGetPathFromIDList ID, SRet
> SRet = Left(SRet, InStr(SRet, vbNullChar) - 1)
> Carpetas = SRet
> End If
>
> End Function
>
> Il se pourrait qu'il manque quelque chosse, dans ce cas envouyez-moi
> un mail a (au Chili)
>
> j'espére que ceci vous sera dútilité
>
>




Avatar
Gloops
Salut,

Voilà un site qui pourrait être intéressant, pour affiner certains
aspects des boîtes de dialogue système.
http://vbnet.mvps.org/

On trouve aussi des adresses intéressantes là :
http://www.mvps.org/links.html#VisualBasic

Dans le midi de la France, l'autre jour j'ai entendu dire "Agen 15
degrés, temps doux pour la saison". Je trouvais le gars pince-sans-rire.

ça changeait du mois de Juillet, où on dépassait tranquillement 30
degrés, il y a même des gens qui avaient du mal à supporter.
_____________________________________
Le 16/08/2006 16:54, Pascal a écrit :
Bonjour à tous et toutes,

je sais comment utiliser le common dialog 6 (boite OUVRIR) pour récupérer un
nom de fichier texte ou autre mais ne sais comment récupérer le nom du
dossier

En effet la boite Ouvrir oblige à descendre toute l'arborescence
moi je désirerai pouvoir m'arreter avant et récuperer le nom du dossier
Petit exemple vaut mieux qu'un long discours:
dans C:MonProgVal1CotesJuin.txt
j'aimerai récupérer uniquement C:MonProgVal1Cotes
Comment faire?

merci de votre aide, idée

Pascal