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

Algorithmes et structures de données Discussion :

Analyser la ligne de commande


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 515
    Par défaut Analyser la ligne de commande
    Bonjour,
    Je cherche à analyser en C/C++ les paramètres passés au programme :
    exemple.exe -I dossier1/ dossier2/ --ignore="*.gif *.tiff" -o dest_dir
    Je voudrais donc savoir si il y a des algorithmes qui existent déjà pour traiter les différents paramètres.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Tu cherches une libraire toute faite (genre "getopt") ou tu recherches des infos sur la théorie des analyseurs syntaxiques ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 515
    Par défaut
    oui

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut kamoulox
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 515
    Par défaut
    je crois que j'ai trouvé une librairie : argtable
    il a fallu que je télécharge libregex ( http://sourceforge.net/project/showf...?group_id=7382 ) afin de pouvoir créer le .a mais je n'arrive pas à compiler la DLL :'(
    j'ai les messages suivants :
    .objs\arg_date.o:arg_date.c:(.text+0xb9): undefined reference to `strptime'
    .objs\arg_date.o:arg_date.c:(.text+0x2a2): undefined reference to `bzero'
    .objs\arg_date.o:arg_date.c:(.text+0x2bd): undefined reference to `strptime'
    .objs\arg_rex.o:arg_rex.c:(.text+0x36): undefined reference to `regcomp'
    .objs\arg_rex.o:arg_rex.c:(.text+0xa1): undefined reference to `regexec'
    .objs\arg_rex.o:arg_rex.c:(.text+0x110): undefined reference to `regfree'
    .objs\arg_rex.o:arg_rex.c:(.text+0x298): undefined reference to `regerror'
    .objs\arg_rex.o:arg_rex.c:(.text+0x4dc): undefined reference to `regcomp'
    .objs\arg_rex.o:arg_rex.c:(.text+0x50c): undefined reference to `regerror'
    .objs\arg_rex.o:arg_rex.c:(.text+0x547): undefined reference to `regfree'
    collect2: ld returned 1 exit status

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonsoir,

    donc je repose la même question que PseudoCode afin de savoir ce que tu souhaites :
    - utiliser une librairie toute faite (ce qui a l'air d'être le cas), alors tu n'es pas dans le bon forum
    - savoir comment créer une telle librairie. Tu as bien choisi le forum et nous pouvons t'orienter sur l'analyse lexicale ET syntaxique pour réaliser ton travail.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 515
    Par défaut
    Si celle ci réponds à mes exigences je n'ai pas besoin d'utiliser un algorithme et donc pour le moment j'ai des problèmes de compilation avec codeblocks.
    Donc pour le moment je dirais que ce n'est plus un problème d'algorithme.

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par smarties Voir le message
    Si celle ci réponds à mes exigences je n'ai pas besoin d'utiliser un algorithme et donc pour le moment j'ai des problèmes de compilation avec codeblocks.
    Donc pour le moment je dirais que ce n'est plus un problème d'algorithme.
    Si tu programmes en C, tu peux utiliser la GLib: http://library.gnome.org/devel/glib/...on-parser.html.
    Si tu programmes en C++, regardes plutôt du côté de Boost.Program_options: http://www.boost.org/doc/html/program_options.html.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 515
    Par défaut
    Après recherche et avancement dans mon programme, je compte utiliser getopt.
    Je voudrais que ma commande soit structurée comme ci-dessous :
    bin regex fichier1 fichier2
    bin -i regexlist.txt *.xml
    bin -e "wget %l" "MAJ vues.preprod [0-9\\.]+" *.xml
    Mon programme prend donc en paramètre :
    - une expression régulière ou un fichier comprenant une liste d'expressions à rechercher
    - 1 ou plusieurs fichiers
    - un paramètre optionnel permettant d'exécuter une commande pour chaque occurrence trouvée
    Pour le moment avec getopt j'ai ceci mais je bloque sur le dernier paramètre de getopt :
    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
        char c;
        while((c=getopt(argc, argv, "i:e::v:h"))!=EOF) {
            switch(c) {
                case 'e':
                    break;
                case 'i':
                    break;
                case 'v':
                    break;
                case 'h':
                    //display help message
                    break;
                case '?':
                    perror("Missing parameters\n");
                    return 1;
                    break;
                default:break;
            }
        }
    En gros j'ai besoin de traiter (analyser les balises <title>) des flux RSS en ligne de commande.

Discussions similaires

  1. Réponses: 30
    Dernier message: 09/11/2012, 17h32
  2. Analyser les options passées en ligne de commande
    Par Musaran dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 18h33
  3. Réponses: 2
    Dernier message: 13/06/2008, 12h56
  4. Récuperer Arguments sur la ligne de commande ?
    Par Muetdhiver dans le forum x86 16-bits
    Réponses: 9
    Dernier message: 20/01/2003, 22h01
  5. Analyser la ligne de commande
    Par benj29 dans le forum C
    Réponses: 14
    Dernier message: 19/11/2002, 05h13

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