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 :

Repérer si le fichier se termine par .txt


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 90
    Par défaut Repérer si le fichier se termine par .txt
    Bonjour,

    J'aimerai savoir si l'un des arguments sur la ligne de commande se termine par .txt
    ./test fichier.txt
    J'ai essayé de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (!strcmp(argv[1],"*.txt"))
    dans ma fonction main mais cela ne fonctionne pas.

    Y a t-il un moyen?


    Merci d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Il suffit de se positionner 4 caractères avant le '\0' de fin de chaine, puis de comparer ces 4 caractères avec ".txt". La fonction strcmp ne permet pas de faire des recherches à base de jokers. Les "*" et "?" sont considérés comme de banals caractères.

    Voilà qui devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	char chaine[]="./test fichier.txt";
    	size_t longueur_chaine = strlen(chaine);
    	if (
    		longueur_chaine >= 4 /* Vu qu'on veut se positionner 4 caractères avant le '\0', la chaine doit faire >=4 caractères sinon on déborde */
    		&& strcmp(chaine + longueur_chaine - 4, ".txt") == 0
    	)
    		printf("OK");
    	else
    		printf("Pas OK");
    Il y a la solution strstr (et surtout strrstr mais elle ne fait pas partie du standard) également.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/05/2010, 21h48
  2. Réponses: 1
    Dernier message: 07/03/2009, 18h04
  3. Réponses: 7
    Dernier message: 23/03/2005, 22h23
  4. Select qui boucle ou se termine par un Ora-01460
    Par PatriceP dans le forum Oracle
    Réponses: 4
    Dernier message: 29/10/2004, 08h53
  5. Réponses: 9
    Dernier message: 22/03/2003, 21h47

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