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
    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.

  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
    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?

  3. #3
    Membre éprouvé
    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 : 54
    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
    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 ?
    @ +

  4. #4
    Membre éprouvé
    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 : 54
    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
    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 ?

    @ +

  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
    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.

  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
    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.

  7. #7
    Membre éprouvé
    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 : 54
    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
    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....

  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
    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 .

  9. #9
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Que je sache, non, TStringList n'est pas un composant 'visuel'....

  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
    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 +

  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
    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();
    }
    //---------------------------------------------------------------------------

  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
    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

  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
    Par défaut
    Je ne vois rien d'autre a modifier je met un petit resolu

+ 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