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

Interfaces Graphiques Perl Discussion :

Renommage fichiers avec ListBox


Sujet :

Interfaces Graphiques Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Renommage fichiers avec ListBox
    Bonjour à tous,
    je suis dans mon 1er script Perl de ce type ...
    Actuellement je développe un script qui va afficher dans une listBox tous les fichiers présents dans un répertoire ( ca c'est ok ).
    L'utilisateur sélectionne ensuite les fichiers qui l'intéresse pour les déplacer dans une seconde listbox ( ça c'est ok aussi).
    Ensuite, pour l'exemple, je souhaiterai juste que tous les fichiers présent dans la listbox2 se voient précéder par un prefixe du genre "test_" & nomfichier ...
    C'est sur cette étape que je bloque ...

    Si vous avez une piste, je suis preneur .


    PS: Script en PJ
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Je remets ton script dans le forum

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #!/usr/bin/perl
     
    use warnings;
    use strict;
    use Tk;
     
    # 1er Menu avec Scan répertoire
    my $rep = 'w:\Public\script';
    opendir R_DIR, $rep or die "E/S : $!\n";
     
    my @rep;
    my ( $lst, $elem );
     
    my $mw = MainWindow->new;
     
    $mw->title("Lister un répertoire");
     
    $mw->Label(
      -text   => "\Ufichiers dans \E: $rep",
      -relief => 'ridge',
    )->pack();
     
    $lst = $mw->Scrolled(
      "Listbox",
      -scrollbars => 'e',
      -background => 'white',
      )->pack(
      -anchor => 'center',
      -ipadx  => '100',
      -ipady  => '100',
      );
    $lst->bind( "<Button-1>", \&list_select );
     
    $mw->Label(
      -textvariable => \$elem,
      -foreground   => 'blue'
    )->pack();
     
    while ( my $fic = readdir(R_DIR) ) {
      next if $fic =~ /^\./;    # saute les fichiers qui commencent avec .
      next if -d "$rep/$fic";   # saute les répertoires
      push @rep, $fic;
    }
     
    $lst->insert( 'end', sort tri @rep );
     
    $mw->Label( -text => "Il y a ${ \(@rep+0) } fichiers.", )->pack();
     
    my $entete2 = $mw->Label( -text => 'liste2' );
    my $lst2 = $mw->Scrolled( 'Listbox', -scrollbars => 'osoe', );
    $lst2->insert( 'end', qw/perl tk qt wx gtk2/ );
     
    #Insertion 2nd Menu deroulant
    my $liste = $mw->Listbox()->pack();
     
    #Bouton envoyer
    $mw->Button(
      -text    => '>>',
      -command => sub {
        my @elt_selectionnes = $lst->curselection();
        foreach my $elt1 (@elt_selectionnes) {
          $liste->insert( 'end', $lst->get($elt1) );
        }
     
      },
    )->pack();
     
    $mw->Button(
      -text    => 'Renommage Fichiers',
      -command => sub {
     
        #C'est ici que je voudrais donc renommer les fichiers presents dans la listbox
        #	rename ($elt1, "lot");
      },
    )->pack();
     
    MainLoop;
     
    sub tri { lc($a) cmp lc($b) }
     
    sub list_select {
      my @select = $lst->curselection();
      $elem = $lst->get( $select[0] );
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Re,
    bon ca avance, je suis juste bloqué sur le traiteent de tous les champs de ma liste2, je n'arrive qu'a traiter le champs selectionné ( via curselection() )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $mw->Button( -text => 'Renommage Fichiers',
                 -command => sub {my @elt_selectionnes2 = $liste->curselection();
    		      foreach my $elt2(@elt_selectionnes2) {
    	      	      rename($rep.'\\'.$liste->get($elt2),$rep.'\_test_'.$liste->get($elt2));
     
    	        }
    		}
    	     )->pack();
    J'ai pourtant essayer les setselection, get et autres ... Je n'arrive pas a declencher le traitement pour TOUS les champs de liste2 ....

    Si quelqu'un y voit plus clair que moi .
    ++

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Voici un petit code pour t'aider
    Il y a les deux cas :
    - sélection
    - toute la liste

    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
    $mw->Button(
      -text    => 'Renommage Fichiers',
      -command => sub {
     
        # Elements sélectionnés dans la liste2
        print "=>selection\n";
        my @elt_selectionnes2 = $liste->curselection();
        foreach my $elt2 (@elt_selectionnes2) {
          my $ancien_fichier  = $rep . '/' . $liste->get($elt2);
          my $nouveau_fichier = $rep . '/' . '_test_selection' . $liste->get($elt2);
          print "$ancien_fichier => $nouveau_fichier\n";
     
          #rename($ancien_fichier,$nouveau_fichier);
        }
     
        # Tous les élements dela liste2
        print "=>toute la liste2\n";
        my @tousliste2 = $liste->get( 0, 'end' );
        foreach my $elt2 (@tousliste2) {
          my $ancien_fichier  = $rep . '/' . $elt2;
          my $nouveau_fichier = $rep . '/' . '_test_' . $elt2;
          print "$ancien_fichier => $nouveau_fichier\n";
     
          #rename($ancien_fichier,$nouveau_fichier);
     
        }
     
      }
    )->pack();

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Juste un mot : nickel.

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

Discussions similaires

  1. [Batch] renommage fichier avec N° de semaine
    Par roulitto dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 22/12/2011, 17h56
  2. Renommage fichier avec un BAT
    Par ritchie23 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 05/07/2011, 16h44
  3. problème renommage fichier avec rename()
    Par nicomax34 dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2010, 18h32
  4. copie et renommage de fichiers avec leur extension
    Par TaleMaker dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2009, 17h06
  5. renommage des lignes d'un fichier avec condition
    Par dofre114 dans le forum Linux
    Réponses: 2
    Dernier message: 13/08/2007, 16h24

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