IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Ouvrir plusieurs fichiers avec OpenFileName


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Par défaut Ouvrir plusieurs fichiers avec OpenFileName
    Bonjour,

    j'utilise actuellement la fonction OpenFileName pour ouvrir un fichier en le sélectionnant dans une fenêtre Windows et je voudrais maintenant donner la possibilité à l'utilisateur de sélectionner plusieurs fichier en appuyant sur la touche CTRL.

    Est-ce dans la structure qu'il faut déclarer la sélection multiple ou une autre fonction à utiliser ?
    Si quelqu'un peut m'aiguiller cela serait sympa, merci d'avance

    ps : je joins un bout de mon code actuel pour l'ouverture d'un fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = MainHandle;
    ofn.lpstrFile = szFile;
    ofn.nMaxFile = MAX_PATH;
    ofn.lpstrFilter = "Fichier MTX (*.MTX)\0*.MTX\0";
    ofn.nFilterIndex = 1;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
     
     
    if (GetOpenFileName(&ofn)==TRUE)
     
     {

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut



    Tu peux effectivement rensigner le membre flags de la structure avec la constante OFN_ALLOWMULTISELECT, voir sur cette page


    Enjoy
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Par défaut
    Formidable, un grand merci.
    C'était juste sous mon nez et je ne l'ai pas vu ...

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Par défaut
    Pour poursuivre j'ai encore une question :

    En faisant une sélection multiple avec le membre flags contenant OFN_ALLOWMULTISELECT, je récupère les noms des fichiers sélectionnés dans szFile.

    Existe t'il un moyen de boucler sur szFile tant que l'on n'a pas atteint le dernier nom de fichier ou bien dois-je moi même décomposer szFile pour récupérer les noms de fichiers ?

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Tout est dans la doc : OPENFILENAME Structure

    Citation Envoyé par MSDN
    If the OFN_ALLOWMULTISELECT flag is set and the user selects multiple files, the buffer contains the current directory followed by the file names of the selected files. For Explorer-style dialog boxes, the directory and file name strings are NULL separated, with an extra NULL character after the last file name. For old-style dialog boxes, the strings are space separated and the function uses short file names for file names with spaces. You can use the FindFirstFile function to convert between long and short file names. If the user selects only one file, the lpstrFile string does not have a separator between the path and file name.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Par défaut
    Merci Raymond, j'ai essayé de coder cela mais cela ne marche pas, pas d'erreur à la compilation mais je ne rentre pas dans ma boucle de traitement (que j'ai fait simple pour le test).

    Si vous voyez où se trouve mon erreur dans mon code, je suis preneur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    string nom_chemin;
    HANDLE hSearch;
    WIN32_FIND_DATA File;
     
    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = MainHandle;
    ofn.lpstrFile = szFile;
    ofn.nMaxFile = MAX_PATH;
    ofn.lpstrFilter = "Fichier TXT (*.TXT)\0*.TXT\0";
    ofn.nFilterIndex = 1;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT;
     
     
    if (GetOpenFileName(&ofn)==TRUE)
     { 
        nom_chemin = szFile;
     
        hSearch = FindFirstFile(nom_chemin.c_str(), &File);
        if (hSearch != INVALID_HANDLE_VALUE)
           {
                do
                    {            
                    SendMessage(EditHandle, EM_SETSEL, 1000000000, 1000000000);
                    SendMessage(EditHandle, EM_REPLACESEL, 0, (LPARAM)"\r\n\r\n\r\n");
                    SendMessage(EditHandle, EM_REPLACESEL, 0, (LPARAM)File.cFileName);     
                    }
                while (FindNextFile(hSearch, &File));
                }
     }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Ouvrir plusieur fichier avec mon programme
    Par yopiyoussef dans le forum C#
    Réponses: 3
    Dernier message: 14/11/2011, 18h02
  2. [Débutant] Boucle avec fopen pour ouvrir plusieurs fichiers
    Par black cat747 dans le forum MATLAB
    Réponses: 7
    Dernier message: 08/12/2010, 15h55
  3. Ouvrir un fichier avec une appli déjà lancée
    Par Cameleon45 dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 17h42
  4. Zipper plusieurs fichiers avec Abbrevia TP
    Par alex4 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 17/11/2004, 08h00
  5. ouvrir plusieurs fenetre avec un lien
    Par demanghonj dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/10/2004, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo