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

Langage Perl Discussion :

Problème avec Rename : Permission denied


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Points : 28
    Points
    28
    Par défaut Problème avec Rename : Permission denied
    Bonjour,

    j'ai un problème avec mon script, je cherche à ouvrir un répertoire puis à lister les fichiers de ce répertoire. Ensuite j'ouvre chaque fichier en lecture et je recherche une regex dont je stocke en mémoire le résultat.
    Puis je tente de renommer les différents fichiers par le résultat de cette regex mais j'ai le message d'erreur suivant : Permission denied at renamer.pl line 49.

    Je vois pas où est le pb ? configuration de Windows XP ( je suis admin) ? fonction rename foireuse ? Fermeture pématurée des fichiers à renommer ?

    A mon avis c'est moi qui déconne mais où ???

    voici mon 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
    51
    52
    53
    54
    55
    56
    57
     
     
    #!/usr/bin/perl
    use CGI::Carp qw(fatalsToBrowser);
    $repertoire = "./BREVET";
     
    # On ouvre le repertoir $repertoire
    opendir(DIR, $repertoire) || die "$repertoire: $!";
    my @fichiers = readdir(DIR);
     
    # On liste les fichiers du repertoire et on stocke les noms complets dans @BREVET
    foreach  $fichiers (@fichiers){
    	print "Fichier présent : $fichiers\n";
    	$old_name= $repertoire."/".$fichiers;
    	print "Path : $old_name\n";
    	push (@BREVET, "$old_name\n");
     
    closedir(DIR);
    }
     
    # On boucle sur l'ensemble des fichiers contenus dans @BREVET
    foreach $BREVET (@BREVET) {
     
    	# Si le nom du fichier correspond à la REGEX on ouvre le fichier
    	if ($BREVET =~ /(.+).htm/g) {
    		open(BREVET, "$BREVET") || die "Cannot open $BREVET for write :$!";
    		print "Ouverture fichier : $BREVET\n";
     
    		# on lit le contenu du fichier
    		while&#40;<BREVET>&#41; &#123;
     
    			# Si une ligne du fichier correspond à la REGEX on stocke la chaîne mémorisée
    			# dans @NEW et le nom du fichier courant dans @OLD
    			if &#40;$_=~ m/<b>Patent number<\/b>&#58; &#40;&#91;A-Z&#93;+&#91;0-9&#93;+&#91;A-Z&#93;?&#41;<br>/&#41; &#123;
     
    				print "Ancien path &#58; $BREVET\n";
    				$new_name=$repertoire."/".$1.".htm";
    				print "Nouveau path &#58; $new_name\n";
    				push &#40;@OLD, "$BREVET\n"&#41;;
    				push &#40;@NEW,"$new_name\n"&#41;;
    			&#125;
    		&#125;
    		close BREVET or die "Cannot close the file $BREVET\n";
    	&#125;
    &#125;
    # Longueur du tableau @OLD
    my $longueur = @OLD;
    print "Longueur de OLD &#58; $longueur\n";
    # Pour chaque élément de @OLD on renomme la scalaire $OLD&#91;x&#93; par $NEW&#91;x&#93;
    foreach $OLD &#40;@OLD&#41; &#123;
    	for &#40;my $x=0; $x<$longueur; $x++&#41; &#123;
     
    		rename&#40;$OLD&#91;$x&#93;,$NEW&#91;$x&#93;&#41;|| die "impossible to rename the file $BREVET&#58; $!";
    	&#125;
     
     
    &#125;
    Merci pour vos remarques et vos conseils sur la réalisation de ce script car je débute en Perl.

    Yann

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach $OLD &#40;@OLD&#41; &#123;
       for &#40;my $x=0; $x<$longueur; $x++&#41; &#123;
     
          rename&#40;$OLD&#91;$x&#93;,$NEW&#91;$x&#93;&#41;|| die "impossible to rename the file $BREVET&#58; $!";
       &#125;
    &#125;
    Ici tu vas parcourir plein de fois @OLD,@NEW, une seule boucle suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       for &#40;my $x=0; $x<$longueur; $x++&#41; &#123;
     
          rename&#40;$OLD&#91;$x&#93;,$NEW&#91;$x&#93;&#41;|| die "impossible to rename the file $OLD&#91;$x&#93;&#58; $!";
       &#125;
    Ici, tu dois rajouter un last pour sortir de la boucle quand tu as trouvé ce que tu cherchais :
    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
          # on lit le contenu du fichier
          while&#40;<BREVET>&#41; &#123;
     
             # Si une ligne du fichier correspond à la REGEX on stocke la chaîne mémorisée
             # dans @NEW et le nom du fichier courant dans @OLD
             if &#40;$_=~ m/<b>Patent number<\/b>&#58; &#40;&#91;A-Z&#93;+&#91;0-9&#93;+&#91;A-Z&#93;?&#41;<br>/&#41; &#123;
     
                print "Ancien path &#58; $BREVET\n";
                $new_name=$repertoire."/".$1.".htm";
                print "Nouveau path &#58; $new_name\n";
                push &#40;@OLD, "$BREVET\n"&#41;;
                push &#40;@NEW,"$new_name\n"&#41;;
                last;
             &#125;
          &#125;
    Par ailleurs pourquoi utilises-tu CGI::Carp dans ce script qui n'est pas CGI ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use CGI&#58;&#58;Carp qw&#40;fatalsToBrowser&#41;;
    Ferme le handle du répertoire quand tu as fini de l'utiliser :
    Une fois que tu auras fait ces modifications, dis nous quel est exactement ton message d'erreur complet.

    --
    Jedaï

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Merci pour ta réponse Jedai,
    mais j'ai fait les modifications que tu m'as fourni mais j'ai toujours cette foutue erreur : impossible to rename the file : Permission denied at renamer.pl line 52. !!!!!

    Pour répondre à tes questions :
    Par ailleurs pourquoi utilises-tu CGI::Carp dans ce script qui n'est pas CGI ? === en faite je croyais que c'était un module qui était fait pour donner des info de debug pour n'importe quel type de script Perl.


    Ferme le handle du répertoire quand tu as fini de l'utiliser : je le ferme tout en haut l 15 : closedir(DIR); ???

    Je vois pas ou regarder maintenant , en tout cas merci pour ton aide et tes conseils car ça me fait vraiment progresser !

    Yann

  4. #4
    Responsable Perl et Outils

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    as tu les droits sur les fichiers ?

  5. #5
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 851
    Points : 4 743
    Points
    4 743
    Par défaut
    Salut

    En fait, l'erreur résultait de tes \n surnuméraires dans les noms de tes fichiers. D'où l'intérêt de chomper au préalable.
    Voici 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    #!/usr/bin/perl
    use CGI&#58;&#58;Carp qw&#40;fatalsToBrowser&#41;;
    $repertoire = "/home/david/BREVET";
     
    # On ouvre le repertoir $repertoire
    opendir&#40;DIR, $repertoire&#41; || die "$repertoire&#58; $!";
    my @fichiers = readdir&#40;DIR&#41;;
     
    # On liste les fichiers du repertoire et on stocke les noms complets dans @BREVET
    foreach  $fichiers &#40;@fichiers&#41;&#123;
    	chomp $fichiers;
    	next if &#40;$fichiers eq "." or $fichiers eq ".."&#41;;
    	print "Fichier présent &#58; $fichiers\n";
    	$old_name= $repertoire."/".$fichiers;
    	print "Path &#58; $old_name\n";
    	push &#40;@BREVET, "$old_name\n"&#41;;
    &#125;
    closedir&#40;DIR&#41;;
     
    # On boucle sur l'ensemble des fichiers contenus dans @BREVET
    foreach $BREVET &#40;@BREVET&#41; &#123;
       chomp $BREVET;   
       # Si le nom du fichier correspond à la REGEX on ouvre le fichier
       if &#40;$BREVET =~ /&#40;.+&#41;.htm/g&#41; &#123;
          open&#40;BREVET, "$BREVET"&#41; || die "Cannot open $BREVET for write &#58;$!";
          print "Ouverture fichier &#58; $BREVET\n";
     
          # on lit le contenu du fichier
          while&#40;<BREVET>&#41; &#123;
     
             # Si une ligne du fichier correspond à la REGEX on stocke la chaîne mémorisée
             # dans @NEW et le nom du fichier courant dans @OLD
             if &#40;$_=~ m/<b>Patent number<\/b>&#58; &#40;&#91;A-Z&#93;+&#91;0-9&#93;+&#91;A-Z&#93;?&#41;<br>/&#41; &#123;
     
                print "Ancien path &#58; $BREVET\n";
                $new_name=$repertoire."/".$1.".htm";
                chomp $new_name;
                print "Nouveau path &#58; $new_name\n";
                push &#40;@OLD, "$BREVET"&#41;;
                push &#40;@NEW,"$new_name"&#41;;
             &#125;
          &#125;
          close BREVET or die "Cannot close the file $BREVET\n";
       &#125;
    &#125;
     
    #@OLD
    foreach $OLD &#40;@OLD&#41;&#123;
    	print "$OLD<-fichier\n";
    &#125;
    #@NEW
    foreach $OLD &#40;@NEW&#41;&#123;
    	print "$OLD<-fichier\n";
    &#125;
     
    # Longueur du tableau @OLD
    my $longueur = @OLD;
    print "Longueur de OLD &#58; $longueur\n";
    # Pour chaque élément de @OLD on renomme la scalaire $OLD&#91;x&#93; par $NEW&#91;x&#93;
    for&#40;my $i=0; $i<$#OLD+1; $i++&#41;&#123;
    	print "Renomme $OLD&#91;$i&#93; en $NEW&#91;$i&#93;\n";
    	rename&#40;$OLD&#91;$i&#93;, $NEW&#91;$i&#93;&#41;;
    &#125;
    Normalement ce code fonctionne chez moi.
    En espérant t'avoir aidé.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    En fait, l'erreur résultait de tes \n surnuméraires dans les noms de tes fichiers. D'où l'intérêt de chomper au préalable.
    A priori, readdir ne rajoute pas de "\n" à la fin des noms de fichiers, donc l'erreur ne provient pas de là... J'ai l'impression qu'il s'agit plus d'un problème de son OS que d'un problème de Perl, mais je ne vois vraiment pas...
    Peut-être qu'essayer le move() de File::Copy règlerait le problème.

    --
    Jedaï

  7. #7
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je vois aussi un autre problème éventuel : le chemin relatif dans $repertoire, essaie de mettre un chemin absolu.

    --
    Jedaï

  8. #8
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 851
    Points : 4 743
    Points
    4 743
    Par défaut
    J'ai pensé aussi èa un problème de chemin relatif, mais en faisant des prints sur ses tablaux, je me suis rendu compte qu'il yavait des retour chariots en trop, d'où les chomp.
    par contre, la question de savoir sur quel OS tu es m'intéresse.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Là ça me surprend !!
    C'est peut-être parce que tu es sous Linux, mais sous Windows, je peux t'assurer que readdir ne met pas de "\n" à la fin des noms de fichiers...

    Par ailleurs il faudrait vraiment supprimer ce "use CGI...", je ne suis pas sûr que ça ne puisse pas avoir une influence néfaste.

    --
    Jedaï

  10. #10
    Nouveau membre du Club
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Merci à tous pour toutes ces infos !!

    En faite j'ai supprimé les \n et ajouté chomp :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if &#40;$_=~ m/<b>Patent number<\/b>&#58; &#40;&#91;A-Z&#93;+&#91;0-9&#93;+&#91;A-Z&#93;?&#41;<br>/&#41; &#123;
      print "Ancien path &#58; $BREVET\n";
      $new_name=$repertoire."/".$1.".htm";
      chomp $new_name; 
      print "Nouveau path &#58; $new_name\n";
      push &#40;@OLD, "$BREVET"&#41;;
      push &#40;@NEW,"$new_name"&#41;;
    &#125;
    et ça fonctionne nikel ! mais pouvez vous m'en dire plus sur le rôle de chomp et sur ce problème de \n ? ne faut il jamais en mettre dans des action push(@XXX,"$variable) ?

    merci les gars,
    Yann

  11. #11
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 851
    Points : 4 743
    Points
    4 743
    Par défaut
    Salut

    chomp est une fonction qui va te permettre de supprimer les retour chariots de tes chaînes de caractères.
    Concernant ton problème de rename, si on n'avait pas utilisé chomp ni veiller à virer les \n surnuméraires, on se retrouve avec la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rename&#40;"/home/toto/titi.htm\n\n", "/home/toto/truc.htm\n\n"&#41;;
    Or, tel quel, rename ne sait pas interprêter les noms de fichiers avec des \n. C'est pour cela que dans les noms de fichiers (de préférence absolus), il faut toujours veiller à virer les \n.
    Au passage, si c'est OK, n'oublies pas de mettre le tag Résolu

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  12. #12
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ok... En fait tu mettais des retours chariots au bout de tes noms de fichiers...
    J'ai pas les yeux en face des trous moi....
    Et si vous oubliez de mettre des chomps et vous contentiez de ne PAS mettre de "\n" au bout des noms de fichiers (pourquoi est-ce que tu croyais qu'il fallait en mettre ?????).

    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
     
    #! /usr/bin/perl
    use strict;
    use warnings;
     
    my $repertoire = "./BREVET";
     
    # On ouvre le repertoir $repertoire
    opendir&#40;DIR, $repertoire&#41; or die "$repertoire&#58; $!\n";
    my @fichiers = readdir&#40;DIR&#41;;
     
    my&#40;@BREVETS, @OLDS, @NEWS&#41;;
    # On liste les fichiers du repertoire et on stocke les noms complets dans @BREVET
    foreach  my $fichier &#40;@fichiers&#41;&#123;
       print "Fichier présent &#58; $fichier\n";
       my $old_name= $repertoire."/".$fichier;
       print "Path &#58; $old_name\n";
       push &#40;@BREVETS, "$old_name"&#41;;
    &#125;
    closedir&#40;DIR&#41;;
     
    # On boucle sur l'ensemble des fichiers contenus dans @BREVET
    foreach my $BREVET &#40;@BREVETS&#41; &#123;
     
       # Si le nom du fichier correspond à la REGEX on ouvre le fichier
       if &#40;$BREVET =~ /\.htm$/&#41; &#123;
          open&#40;BREVET, '<', $BREVET&#41; or die "Ne peut ouvrir $BREVET en lecture &#58; $!\n";
          print "Ouverture fichier &#58; $BREVET\n";
     
          # on lit le contenu du fichier
          while&#40;<BREVET>&#41; &#123;
     
             # Si une ligne du fichier correspond à la REGEX on stocke la chaîne mémorisée
             # dans @NEW et le nom du fichier courant dans @OLD
             if &#40; m/<b>Patent number<\/b>&#58; &#40;&#91;A-Z&#93;+&#91;0-9&#93;+&#91;A-Z&#93;?&#41;<br>/ &#41; &#123;
     
                print "Ancien path &#58; $BREVET\n";
                my $new_name=$repertoire."/".$1.".htm";
                print "Nouveau path &#58; $new_name\n";
                push &#40;@OLDS, "$BREVET"&#41;;
                push &#40;@NEWS, "$new_name"&#41;;
                last;
             &#125;
          &#125;
          close BREVET or die "Ne peut fermer $BREVET\n";
       &#125;
    &#125;
     
    # Longueur du tableau @OLDS
    my $longueur = @OLDS;
    print "Longueur de \@OLDS &#58; $longueur\n";
    # Pour chaque élément de @OLDS on renomme la scalaire $OLDS&#91;x&#93; par $NEWS&#91;x&#93;
    for &#40;my $x=0; $x<$longueur; $x++&#41; &#123;
      rename&#40;$OLDS&#91;$x&#93;,$NEWS&#91;$x&#93;&#41; or die "impossible de renommer le fichier $OLDS&#91;$x&#93; en $NEWS&#91;$x&#93;&#58; $!";
    &#125;
    J'ai pas mal nettoyé le code. Un conseil pour la programmation en général : c'est pas une bonne idée de mélanger les langues pour les notations et les messages d'erreurs (je me suis contenté de modifier les messages d'erreur et très légèrement la notation).

    --
    Jedaï

  13. #13
    Nouveau membre du Club
    Inscrit en
    Août 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 47
    Points : 28
    Points
    28
    Par défaut
    Merci à tous,
    Yann

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

Discussions similaires

  1. Probleme avec apache2 permission denied
    Par aminus19 dans le forum Apache
    Réponses: 4
    Dernier message: 14/02/2011, 20h28
  2. Importer un fichier avec postgres : permission denied
    Par cedrix57 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 10/12/2009, 17h41
  3. [AJAX] Script autocomplétion Denis Cabasson
    Par olivier8064 dans le forum AJAX
    Réponses: 2
    Dernier message: 14/08/2009, 10h17
  4. [Unix] problème avec des permissions sur un fichier
    Par bulbo dans le forum Administration système
    Réponses: 3
    Dernier message: 20/02/2008, 16h04
  5. Problème avec Renames et packages
    Par Helifyl dans le forum Ada
    Réponses: 1
    Dernier message: 29/04/2007, 15h40

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