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

C Discussion :

Choix à faire pour analyse d'une chaine


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut Choix à faire pour analyse d'une chaine
    Bonjours!
    J'essaye de faire un espèce d'explorateur de dossiers en console pour le plaisir. L'utilisateur rentrera une commande du genre "list 'répertoire'" ou bien "read 'nomDuFichier'", enfin vous comprenez. Mon problème, c'est pour la reconnaissance de la commande, j'ai pensé à strstr() mais si il tape "fmekslfnejskenmslist popife" ça va renvoyer vrai. Mon autre problème, c'est pour récupérer le chemin... Bref j'ai pensé à des trucs mais rien ne marche alors je vous demande qu'est-ce que vous feriez à ma place, expressions régulières ou me faire chier à gérer ça moi-même (J'ai aucune idées comment faire)...Merci beaucoup!

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    pour la commande, juste un strcmp machera très bien.... ou strcasecmp.

    Pour le nom du chemin, je vois pas ton problème...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Tu veux dire que je fasse quoi avec strcmp, une boucle, parce que c'est qu'un caractère non? En fait mon gros problème c'est pour la syntaxe de ce programme je veux un ordre précis d'entrées: <commande><espace><chemin> et rien d'autre et je m'imagine pas comment l'implémenter....avec strcmp...

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ça se fait parfaitement avec... allez je t'aide..

    Je te donne la liste des fonctions dont tu auras besoin. A charge pour toi d'aller chercher dans les tutoriels et cours comment on es utilise. Ensuite, tu nous présente un essai de code, et on t'aidera.. Mais on le fera pas à ta place

    Donc il te faudra :

    pour la commande : strcasecmp
    pour le chemin : strcpy

    Plus

    malloc

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    Je ne veux surtout pas de code rassure toi, j'ai un but entièrement pédagogique mais premièrement, j'ai cherché un peu pour trouver les docs de la libc mais j'ai pas trop trouvé sauf des pas clairs ou non mises-à-jour, où est-ce qu'elle est? J'essaye le man mafonction() mais c'est la même chose
    Et puis je réfléchis un peu....je vais tester un code mais là j,ai des problèmes avec mon gcc, le temps que je règle cela et puis je m'y plonge!

    Bon en fait, j'ai pondu un petit code juste pour reconnaitre si il y a de tapé "list ou "exit" mais bon...je sais pas si je suis sur la bonne voie....

    Le voici:
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "gets.h"
     
     
    int main(int argc, char *argv[])
    {
    	char cmd[100+1];
    	size_t sizeCmd = sizeof cmd;
     
    	int exit = 0;
     
    	printf("Veuillez entrer une commande...\n");
    	while (!(exit))
    	{
    		printf("> ");
    		get_s(cmd, sizeCmd); //Fonction de saisie d'entrée correcte
     
    		if (strncasecmp("list", cmd, 3) == 0) //0 est la valeur renvoyée si égal
    		{
    			printf("Commande list reconnue\n");
    		}
    		else if(strncasecmp("exit", cmd, 3) == 0) //0 est la valeur renvoyée si égal
    		{
    			printf("Commande exit reconnue\n");
    			exit = 1;
    		}
    		else
    			printf("Commande non reconnue\n");
    	}
    	return 0;
    }

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    c'est pas mauvais du tout

    Sauf que "list" est "exit" ça fait 4 caractères et non pas 3..

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    [EDIT] Grillé!!!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/11/2007, 10h22
  2. Réponses: 1
    Dernier message: 26/03/2007, 12h58
  3. Comment faire un explode sur une chaine comme suit ?
    Par sebnutt dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 11h59
  4. [VBA-E]Comment faire pour écrire dans une page excel existante ?
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 13h54
  5. [C#] Comment faire pour rendre invible une colonne(ListView)
    Par Jfrancois57 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2004, 13h27

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