[R] Comment récupérer le filtre utilisé ?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
theAvenger
Niveau 5
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é ?

#1

Message par theAvenger »

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.
Modifié en dernier par theAvenger le mar. 01 nov. 2011 18:17, modifié 1 fois.
Avatar du membre
FernandG
Membre émérite
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é ?

#2

Message par FernandG »

Bonsoir,

Très bonne question :wink:
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 ... :wink:

Bon courage et bonne soirée.
Avatar du membre
Tlem
Site Admin
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é ?

#3

Message par Tlem »

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 ... 8)
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é".
Avatar du membre
FernandG
Membre émérite
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é ?

#4

Message par FernandG »

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.
Avatar du membre
TommyDDR
Modérateur
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é ?

#5

Message par TommyDDR »

Et bien testez ce dit fichier.
► Afficher le texte
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
FernandG
Membre émérite
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é ?

#6

Message par FernandG »

:wink: :wink: merci TommyDDR :wink: :wink:

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.
Avatar du membre
Tlem
Site Admin
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é ?

#7

Message par Tlem »

En fait, FileSaveDialog et FileOpenDialog fonctionne sur le même principe.
Le but des filtres est de filtrer l'affichage (d’où le nom :lol: ).

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é".
Avatar du membre
theAvenger
Niveau 5
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é ?

#8

Message par theAvenger »

Merci, c'est exactement ça. Je vais le tester tout de suite.
Avatar du membre
ZOTHOP
Niveau 3
Niveau 3
Messages : 42
Enregistré le : lun. 14 févr. 2011 14:14
Status : Hors ligne

Re: [..] Comment récupérer le filtre utilisé ?

#9

Message par ZOTHOP »

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

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
 
L'Array contient :
$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"
Avatar du membre
theAvenger
Niveau 5
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é ?

#10

Message par theAvenger »

Merci beaucoup !!!! C'est beaucoup plus pratique !!!
Sujet résolu !
Répondre