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 :

Regex et extention de fichiers


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Regex et extention de fichiers
    Bonjour à tous,

    J'ai un petit problème sur un script Perl, basé sur wpd2sxwbatch.pl :

    Mon script doit convertir un paquet de fichiers d'un format wordperfect à openoffice, la conversion marche sans problème, tant que les fichiers cibles (qui doivent donc être convertis) ont la même extension, entrée en dur dans le script. (genre $ext_in = "wpd"

    Mais c'est là que les choses se compliquent : les fichiers cibles ont des extensions numériques variables, genre .123 pour l'un, .108 pour le second etc. Quand je rajoute, en dur encore une fois, $ext_in = 108; par exemple ça marche, mais évidement que pour les fichiers .108.

    Du coup, mon script doit prendre en compte la forme de ces extensions (3 chiffres aléatoires), pour ça j'ai modifié le script avec des expressions rationnelles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    use Getopt::Std;
     
    ## Variables
     
    getopts('thvurd:o:');
     
    $ext_in  = "wpd";
    $ext_in  = "wpd" if $opt_t == 1;
     
    $ext_in  =~ /\d+/;
    en essayant tour à tour pour la dernière ligne :

    $ext_in =~ /\d\d\d/;
    $ext_in =~ /\d{3}/;
    $ext_in =~ /\d+/;
    $ext_in =~ /[0-9]+/
    $ext_in =~ /[0-9]{3}/
    $ext_in =~ /[0-9][0-9][0-9]/

    etc.

    Mais ça ne fonctionne pas, pourquoi et comment faire ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Cette expression ne fait pas grand chose :
    puisqu'elle vérifie que $ext_in contient des digits numériques, mais on ne fait rien du résultat.
    Peux-tu expliquer plus clairement l'opération que tu veux réaliser... concrètement.
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    je veux que mon script récupère toutes les extensions de type .xxx (où x sont des chiffres aléatoires) dans le dossier désigné au lancement, et qu'il se serve de ces extensions pour identifier les fichiers à convertir, puis les convertir.

    La conversions fonctionne sur les fichiers dont l'extension est explicitement donnée, mais avec la regex, le script agit comme si il ne trouvait aucun fichier correspondant.

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Mmmm, il faudrait que tu nous donnes la partie de script qui sélectionne les fichiers... mais je devine que ce que tu cherches à faire sera correctement réalisé en modifiant la ligne qui ne fait rien par celle-ci :
    Plus j'apprends, et plus je mesure mon ignorance (philou67430)
    Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
    Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
    Si c'est utile, say

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup Philou67430, ça marche exactement comme je voulai, à part un petit bug où il m'affiche une erreur de répertoire sans conséquence et sans importance

  6. #6
    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 : 498 771
    Points
    498 771
    Par défaut
    Pour récupérer l'extension du fichier, petite explication dans les sources.

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

Discussions similaires

  1. destruction des extentions des fichiers par un virus
    Par amdmhandicap dans le forum Sécurité
    Réponses: 4
    Dernier message: 18/11/2010, 14h03
  2. Vérifier par RegEx un nom de fichier
    Par ToniConti dans le forum Pentaho
    Réponses: 2
    Dernier message: 19/10/2010, 16h10
  3. Réponses: 7
    Dernier message: 09/12/2008, 00h28
  4. [regex] Epuration StackTrace pour fichier CSV
    Par BizuR dans le forum Langage
    Réponses: 2
    Dernier message: 14/10/2006, 11h57
  5. [RegEx] regex:prendre tous les fichier inclu
    Par jeff_! dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2006, 18h19

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