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++Builder Discussion :

Probleme de copie multiple


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut Probleme de copie multiple
    Bonjour.
    J'utilise un DriveComboBox associe a un FileListBox.
    Est ce qu'il est possible de copier une selection de plusieurs fichiers.
    Y a t'il une methode a respecter pour ce type de copie.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    J'ai fait une recherche, j'ai vu en delphi la posibilite de stoker les chemins des fichiers a copiers dans une ListBox,
    comment mettre en oeuvre une telle procedure?
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir blondelle !

    Un simple truc comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TStringList *plist = new TStringList();
    for (int i = 0; i < FileListBox1->Items->Count; i ++)
    {
            if (FileListBox1->Selected[i] == true)
            {
                    plist->Add(FileListBox1->Items->Strings[i]);
            }
     
    }
    afin de stocker la selection dans un TStringList et d'utiliser ces infos après dans :
    (un API qui copie....je jubile en faisant des rimes débiles) ne suffirait pas ?
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Salut,
    J'ai oublié deux choses en fait :
    . si tu utilises un DirectoryListBox, il faut écrire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    plist->Add(DirectoryListBox1->Directory + AnsiString("\\") +  FileListBox1->Items->Strings[i]);
    . a priori, tu utilises un DriveComboBox, mais comment fais tu pour y associer un FileListBox ?

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    bonsoir Sunchaser.
    J'ai tellement bricolé pour arriver a faire fonctionner ces quelques lignes de code je crois que je vais changer de passion.
    bon treve de plaisanterie.
    DirectoryBox est lié par Events a FileListBox
    DriveComboBox est lié par Events a DirectoryListBox
    Je peu t'envoyer une copie du fichier il n'y a presque pas de code c'est surprenant comme quatres lignes peuvent nous pourrir la vie.
    la seule chose qui ne ma pas pose probleme et dont je n'ai pas besoin pour l'instant c'est le changement de lecteur
    Mon programme se compose d'une Form 2 directorybox 2 filelistbox une partie source une partie destination ca fonctionne pour copier un seul fichier, j'aimerais le faire pour plusieurs fichiers, apres on verra pour un repertoire et on va s'arreter la.
    comment tu recupere tes fichiers a copier dans la ListeBox je n'ai pas verifie s'il y a une propriete "count" le NB de fichier contenu est aleatoire, une boucle pour la copie devrait suffire, je vais tester.
    Merci en tout cas pour ta reponse.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Juste une question qui n'est pas forcement idiote si le chemin qui va etre copie dans la cellule du StringGrid est tres longue vat elle etre tronquée.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  7. #7
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par blondelle
    Juste une question qui n'est pas forcement idiote si le chemin qui va etre copie dans la cellule du StringGrid est tres longue vat elle etre tronquée.
    StringGrid ?
    De mon côté je parlais d'un TStringList....
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Encore une question a la con y a t'il un composant pour un TStringList je ne vois rien dans la liste des composants BCB .
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  9. #9
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Que je sache, non, TStringList n'est pas un composant 'visuel'....
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  10. #10
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Ah! ca me rassure je vais pouvoir me coucher tranquille et reprendre tout cela demain a tete reposee.
    Merci pour tes reponses Sunchaser.
    Je posterais la solution que saurais trouvée.
    Dis moi si tu a essaye le TDriveComboBox.
    A +
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    J'ai resolu le probleme en utilisant un TListBox (avec un TStringList je travaillais en aveugle), la pour mes essais j'ai vu ce qui se passait, et ca marche pour un ou plusieurs fichiers, si on laisse la propriete visible du ListBox on peu voir la liste des fichiers dans le tampon de copie.
    Le code:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "dir.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Quitter1Click(TObject *Sender)
    {
    Application->Terminate();
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
    {
    DirectoryListBox1->Drive = DriveComboBox1->Drive;
            FileListBox1->Directory = DirectoryListBox1->Directory;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FileListBox1Click(TObject *Sender)
    {
    source = FileListBox1->FileName;
            ListBox1->Items->Add(source);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FileListBox2Enter(TObject *Sender)
    {
    for (int i = ListBox1->Items->Count-1; i>=0; i--)
            {
    source = ListBox1->Items->Strings[i];
            nom_a_copier = ExtractFileName(source);
                    chemin = DirectoryListBox2->Directory;
            chemin = chemin + "\\" + nom_a_copier;
    CopyFile(source.c_str(), chemin.c_str(), true);
            chemin = "";
    ListBox1->Items->Delete(i);
            }
    // on rafraichis le FileListBox2
    FileListBox2->Update();
    }
    //---------------------------------------------------------------------------
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  12. #12
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    J'ai fais une petite modif
    le code:
    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
    void __fastcall TForm1::FileListBox2Enter(TObject *Sender)
    {
    premier_chemin = DirectoryListBox2->Directory;
    for (int i = ListBox1->Items->Count-1; i>=0; i--)
            {
    source = ListBox1->Items->Strings[i];
            nom_a_copier = ExtractFileName(source);
            chemin = premier_chemin + "\\" + nom_a_copier;
    CopyFile(source.c_str(), chemin.c_str(), true);
            chemin = "";
    ListBox1->Items->Delete(i);
            }
    // on rafraichit le FileListBox2
    FileListBox2->Update();
    }
    Cette variable n'est appelee qu'une seule fois
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  13. #13
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Je ne vois rien d'autre a modifier je met un petit resolu
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

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

Discussions similaires

  1. probleme de copie multiple de fichier
    Par dalleau974 dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/03/2014, 14h40
  2. [FTP] Probleme de copie de fichier en reseaux avec easphp
    Par needles94000 dans le forum Langage
    Réponses: 17
    Dernier message: 29/03/2006, 15h24
  3. Probleme d'imbrication multiple
    Par Gwipi dans le forum Requêtes
    Réponses: 5
    Dernier message: 27/03/2006, 17h36
  4. [Tableau]Problèmes avec copie de tableau
    Par Itachi-san dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 17h23
  5. [easystruts] probleme de copie des *.tld dans web-inf
    Par champion dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/08/2004, 11h46

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