Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1602 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  recuperation d'un "ARRAY" dans un tableau..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recuperation d'un "ARRAY" dans un tableau..

n°194605
thorra
Posté le 13-08-2002 à 13:48:29  profilanswer
 

sub recupNomType{
    my ($obj)=shift;
    my ($fich)=shift;
  my($nom,$i,$fin,$type)=undef;
    $i=rindex($fich,'.';);  
    if(($i)eq(-1)){
      $fin=1;
    $nom=$fich;
  }else{
        $nom=substr($fich,0,($i));
    $type=substr($fich,($i+1),(length($fich)-($i+1)));
   }
  return $nom,$type;
 
}
 
 
 
 
 
 
 
 
my ($RepCourant) = cwd();
my ($RepTemp) = $volume.$dir;
my (@Fichiers)=[];
# récupération des fichiers contenus dans c:\Temp
chdir($RepTemp);
         
@_ = <*>;  
# on vire tous les rép récupérés dans l'instruction précédente
foreach(@_) {
       if (! -d $_) { # si pas un répertoire, on récupère
            push(@Fichiers, $_);
       }
}  
 
# test si le fichier est "*.*" ==> copie de tous les fichiers #d'un repertoire
 
($nom,$typ)=$obj->recupNomType($fich);
my ($etNom)=(($nom)eq('*';));
my ($etTyp)=(($typ)eq('*';));
        if((($etNom)ne(undef))and(($etTyp)ne(undef))){
        foreach(@Fichiers){
                              if(index($_,'ARRAY(';)eq -1){# test si la valeur est l' "ARRAY" non désiré
                           $ret=copy($_,$repSave.$_);
                if(($ret)ne(1)){
                               $noPb=0;
                                }
                    }            
         }
}
 
 
 
par ce code , je recupère la liste des fichiers et repertoires d'un dossier.Si une valeur est un fichier, je le copie dans un repertoire de sauvegarde.
le probleme est qu'au final, je retrouve la valeur  
ARRAY(...qqchose...)comme 1er element du tableau @Fichiers.  
ceci m'embete un peu car il a ppour concequence de signaler un probleme dans la copie ( noPB=0 realise ce signalement ).
 
j'aimerai bien savoir d'ou vient cet ARRAY car il n'aparait pas dans la liste des fichiers récupéré...
et comment detecter sa presence autrement  que par le test que j'efectue ? ( (index($_,'ARRAY(';) )
 

mood
Publicité
Posté le 13-08-2002 à 13:48:29  profilanswer
 

n°195239
Tentacle
Posté le 14-08-2002 à 15:07:39  profilanswer
 

Rhaa j'ai trouvé :)
 
Il m'a fallu du temps pour comprendre ton problème mais en fait c'est tout bête :
 
quand tu fais :  

Code :
  1. my (@Fichiers)=[];


 
tu ne crées pas un tableau mais une référence vers un tableau (à cause des crochets). Il faut en faire ceci :

Code :
  1. my @Fichiers = ();


 
ça marchera sûrement mieux :D


Message édité par Tentacle le 14-08-2002 à 15:12:00
n°195337
thorra
Posté le 14-08-2002 à 17:18:00  profilanswer
 

j'ai bien remplacés les [] par ()...  
je retrouve toujours l'ARRAY....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  recuperation d'un "ARRAY" dans un tableau..

 

Sujets relatifs
coller un gif en haut et en bas d'un tableauEffacer toutes les données d'un tableau ( Array )
Convertir une chaine en tableau .[C] Retourner un tableau d'int dans une fonction
[Java] Pbr récupération d'un InputStream a partir de lib COS....[opengl] vertex array vs. calllist donnez votre avis
[java] equivalent d'un tableau de structure mais en java.tri d'un tableau multi-dimensionnel .. besoin d'aide..
comment supprimer un rang d'un tableau a 3 dimentions ??? 
Plus de sujets relatifs à : recuperation d'un "ARRAY" dans un tableau..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR