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

Scripts/Batch Discussion :

Compter les occurences d'un champ dans un fichier txt


Sujet :

Scripts/Batch

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

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Points : 20
    Points
    20
    Par défaut Compter les occurences d'un champ dans un fichier txt
    Bonjour à tous !

    Je possède un fichier texte organisé comme suit :
    et j'aimerais compter les enregistrements dont le Nom vaut un paramètre de ma commande CompterNom.

    Ainsi lorsque je tape CompterNom Durant, j'aimerais que la commande m'affiche combien de personnes portant le nom Durant sont dans mon fichier.

    J'ai tenté la commande FOR afin de lire ligne par ligne mon fichier & de lire uniquement le premier champ mais ça ne marche pas (je voulais faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set nb=0
    for /f "eol=# tokens=1 delims=:" %%a in (monfichier.txt) DO (if"%%a"=="%1" set /a "nb=%nb%+1")
    echo nb
    mais ça ne fonctionne pas : la commande ajoute 1 à nb même s'il y a plusieurs ou pas d'enregistrements identiques à %2. Quelqu'un aurait-il une piste à me fournir ?

    Merci d'avance !

  2. #2
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Bonsoir,





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set nb=0
    for /f "eol=# tokens=1 delims=:" %%a in (file.txt) DO (if /I "%%a"=="%1" set /a "nb+=1")
    echo %nb% occurence^(s^)

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

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Merci pour cette réponse, je vais la tester rapidement.
    Simplement et pour bien comprendre les choses, quelle est la différence avec mon code à moi, qu'est-ce que change le commutateur I/ (je croyais qu'il permettait simplement d'ignorer la casse) ?
    De plus, je croyais qu'il fallait mettre % devant et derrière les noms de variables, pourquoi employez vous des ! ?
    Merci encore,
    bonne soirée !

  4. #4
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Bonsoir,

    les changements :

    :: espace obligatoire entre le IF et "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (if"%%a"==    ------>  (if "%%a"==

    :: pour ne pas utilisé l'expansion retardé des variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb=%nb%+1   ------> nb+=1
    Le caractère ! rend la variable exploitable dans une boucle essayez avec % et vous verrez que ça ne marchera pas

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

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    En effet, je viens d'essayer et ça ne fonctionnait pas (je serais d'ailleurs curieux d'en connaître la raison !).
    Merci encore pour tous ces éclaircissements.

  6. #6
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    Bonjour,

    Vous trouverez ce que vous chercher avec SET /?

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 25/04/2009, 19h41
  2. [RegEx] Compter les occurences d'un mot dans un PHP
    Par FoxLeRenard dans le forum Langage
    Réponses: 2
    Dernier message: 19/02/2009, 08h18
  3. Compter les occurences d'un mot dans une chaîne
    Par mimi2311 dans le forum Pascal
    Réponses: 4
    Dernier message: 20/04/2008, 22h37
  4. [FAQ] compter les occurences d'une chaîne dans un fichier
    Par cafeine dans le forum Contribuez
    Réponses: 3
    Dernier message: 25/07/2006, 11h21
  5. Compter les occurences d'un car dans une chaine/variable
    Par sherlockfr dans le forum Windows
    Réponses: 2
    Dernier message: 10/11/2005, 07h48

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