[R] Comment récupérer le filtre utilisé ?
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- theAvenger
- Niveau 5

- Messages : 159
- Enregistré le : dim. 14 nov. 2010 15:26
- Localisation : Alsace
- Status : Hors ligne
[R] Comment récupérer le filtre utilisé ?
Bonjour à tous !
J'aimerais juste savoir comment récupérer le filtre utilisé avec la fonction FileSaveDialog car ce n'est pas expliqué dans l'aide. Merci.
J'aimerais juste savoir comment récupérer le filtre utilisé avec la fonction FileSaveDialog car ce n'est pas expliqué dans l'aide. Merci.
Modifié en dernier par theAvenger le mar. 01 nov. 2011 18:17, modifié 1 fois.
- FernandG
- Membre émérite

- Messages : 194
- Enregistré le : mar. 15 avr. 2008 21:50
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Bonsoir,
Très bonne question
Je m'étais déjà penché sur ce cas. A l'époque j'avais trouvé ce lien sur le forum US : 43973-filesavedialog-return-filter.
Si quelqu'un à mieux à proposer ...
Bon courage et bonne soirée.
Très bonne question
Je m'étais déjà penché sur ce cas. A l'époque j'avais trouvé ce lien sur le forum US : 43973-filesavedialog-return-filter.
Si quelqu'un à mieux à proposer ...
Bon courage et bonne soirée.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Je ne comprend pas trop bien la question ...
Pour les filtres, c'est pourtant bien expliquer dans l'aide.
Vous avez la ligne de commande de FileSaveDialog qui vous indique que les filtres devront être placés entre guillemets puis trois exemples de filtres sont montrés + 2 dans l'exemple :
1 - File type single filter such as "All (*.*)"
2 - or "Text files (*.txt)"
3 - or multiple filter groups such as "All (*.*)|Text files (*.txt)"
4 - (*.aut;*.au3) <= Montré dans l'exemple
5 - "Scripts (*.aut;*.au3)|Text files (*.ini;*.txt)" <= Montré dans l'exemple
Le texte juste après les premiers guillemets est un texte représentatif du filtre, puis entre parenthèses, vous avez le filtre lui même ...
En 3, 4 et 5, vous avez des exemples de comment mettre plusieurs filtres en les séparent par le caractère "|" et/ou ";" en fonction du type de fichiers souhaité.
Pour les filtres, c'est pourtant bien expliquer dans l'aide.
Vous avez la ligne de commande de FileSaveDialog qui vous indique que les filtres devront être placés entre guillemets puis trois exemples de filtres sont montrés + 2 dans l'exemple :
1 - File type single filter such as "All (*.*)"
2 - or "Text files (*.txt)"
3 - or multiple filter groups such as "All (*.*)|Text files (*.txt)"
4 - (*.aut;*.au3) <= Montré dans l'exemple
5 - "Scripts (*.aut;*.au3)|Text files (*.ini;*.txt)" <= Montré dans l'exemple
Le texte juste après les premiers guillemets est un texte représentatif du filtre, puis entre parenthèses, vous avez le filtre lui même ...
En 3, 4 et 5, vous avez des exemples de comment mettre plusieurs filtres en les séparent par le caractère "|" et/ou ";" en fonction du type de fichiers souhaité.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- FernandG
- Membre émérite

- Messages : 194
- Enregistré le : mar. 15 avr. 2008 21:50
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Je pense qu'il a voulu dire (c'était mon cas) :
En cas de filtre multiple dans la fonction FilesaveDialog, comment récupère t'on le type de filtre sélectionné ?! Comment savoir si la sélection est de type au3 ou un txt, par exemple ?!
La variable associé à FileSaveDialog ne donnant que le nom du fichier.
En cas de filtre multiple dans la fonction FilesaveDialog, comment récupère t'on le type de filtre sélectionné ?! Comment savoir si la sélection est de type au3 ou un txt, par exemple ?!
La variable associé à FileSaveDialog ne donnant que le nom du fichier.
- TommyDDR
- Modérateur

- Messages : 2130
- Enregistré le : mar. 22 juil. 2008 21:55
- Localisation : Nantes
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Et bien testez ce dit fichier.
► Afficher le texte
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
- FernandG
- Membre émérite

- Messages : 194
- Enregistré le : mar. 15 avr. 2008 21:50
- Localisation : Picardie
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Bon ... dans l'exemple, la variable $Fichier, contient déjà l'extension or FileSaveDialog ne retourne pas l'extension que l'on a sélectionné, sauf si on l'a saisie.
Implicitement, en sélectionnant le filter type on devrait avoir ce type stocké quelque part, @extended par exemple, et ce n'est pas le cas.
Car beaucoup de personnes entrent un nom de fichier, choisissent l'extension en sélectionnant le "filter" et valident l'enregistrement du fichier. La variable nous retourne que le path et le nom du fichier et rien sur le choix effectué au niveau du filtre.
Enfin, je peux me tromper sur la demande initiale ... donc excepté le lien donné, je n'ai pas mieux à fournir.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
En fait, FileSaveDialog et FileOpenDialog fonctionne sur le même principe.
Le but des filtres est de filtrer l'affichage (d’où le nom
).
En effet, avec un filtre dans ce genre : "Text files (*.txt;*.ini)", comment le script peut-il connaitre le filtre à utiliser ... .txt ou .ini ???
Par contre, avec ce type de filtre : "Text files (*.txt)|Ini File (*.ini)" la fonction devrait prendre le filtre sélectionné par défaut, mais en l’occurrence, la fonction n’a pas été écrite comme cela, donc en dehors d'une bidouille comme sur le lien donné par FernandG, il n'y à pas de solution simple.
Le but des filtres est de filtrer l'affichage (d’où le nom
En effet, avec un filtre dans ce genre : "Text files (*.txt;*.ini)", comment le script peut-il connaitre le filtre à utiliser ... .txt ou .ini ???
Par contre, avec ce type de filtre : "Text files (*.txt)|Ini File (*.ini)" la fonction devrait prendre le filtre sélectionné par défaut, mais en l’occurrence, la fonction n’a pas été écrite comme cela, donc en dehors d'une bidouille comme sur le lien donné par FernandG, il n'y à pas de solution simple.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- theAvenger
- Niveau 5

- Messages : 159
- Enregistré le : dim. 14 nov. 2010 15:26
- Localisation : Alsace
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Merci, c'est exactement ça. Je vais le tester tout de suite.
Re: [..] Comment récupérer le filtre utilisé ?
Bonjour,
je me suis longuement penché sur la question et j'ai enfin trouvé la solution pour récupérer le filtre automatiquement.
Ce n'est pas FileSaveDialog qu'il faut utiliser si l'on veut travailler avec plusieurs filtres.
D'abord il faut inclure :
#Include <WinAPI.au3>
Puis utiliser la fonction :
_WinAPI_GetSaveFileName qui fait office de FileSaveDialog
L'exemple qui suit montre comment l'utiliser pour récupérer le chemin d'accès du fichier et le filtre choisit
L'Array contient :
$aFile[1] la lettre du lecteur et le dossier.
$aFile[2] le nom du fichier et le filtre choisit en extension.
je me suis longuement penché sur la question et j'ai enfin trouvé la solution pour récupérer le filtre automatiquement.
Ce n'est pas FileSaveDialog qu'il faut utiliser si l'on veut travailler avec plusieurs filtres.
D'abord il faut inclure :
#Include <WinAPI.au3>
Puis utiliser la fonction :
_WinAPI_GetSaveFileName qui fait office de FileSaveDialog
L'exemple qui suit montre comment l'utiliser pour récupérer le chemin d'accès du fichier et le filtre choisit
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <Array.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 212, 146, 192, 124)
$Button1 = GUICtrlCreateButton("Save", 64, 56, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg=$Button1
$aFile = _WinAPI_GetSaveFileName("Sélectionnez un fichier","Text(*.txt)|OGH Files(*.ogh)")
_ArrayDisplay($aFile)
EndSelect
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
$aFile[1] la lettre du lecteur et le dossier.
$aFile[2] le nom du fichier et le filtre choisit en extension.
"T'es encore devant ton ordinateur","J'ai essayé derrière mais ça marche nettement moins bien"
- theAvenger
- Niveau 5

- Messages : 159
- Enregistré le : dim. 14 nov. 2010 15:26
- Localisation : Alsace
- Status : Hors ligne
Re: [..] Comment récupérer le filtre utilisé ?
Merci beaucoup !!!! C'est beaucoup plus pratique !!!
Sujet résolu !
Sujet résolu !

