Programme qui relève les mots des phrase

Résolu
Utilisateur anonyme -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je voudrais créer ou avoir un programme qui permet de relever les mots utiliser dans des phrase qui serons ensuit dans un ficher txt. Il faut avoir un classement (du mot, la fréquence en % et le nombre de fois qu'il apparaît. aussi il faut également pouvoir choisir au niveau du classement soit ordre ou désordre alphabétique, fréquence du plus au moins utiliser ou le contraire.

3 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    Est-ce que tu cherches à faire quelque chose comme ça :

    @echo off
    Setlocal EnableExtensions EnableDelayedExpansion
    chcp 65001 >nul

    set "phrase="
    cls & echo. & echo Rentrez la phrase ?
    set /p "phrase="

    if not exist "%~dp0Stockage_mots" (mkdir "%~dp0Stockage_mots")
    cd /d %~dp0Stockage_mots

    set "phrase=!phrase! #"
    set position=0
    set "mot="

    :debut
    set caractere=!phrase:~%position%,1!

    if "!caractere!"=="#" (call :resume & exit)

    if not "!caractere!"==" " (
    if not "!caractere!"=="," (
    if not "!caractere!"=="." (set mot=!mot!!caractere!))) else (echo 1 fois; >>!mot!.txt & set "mot=")

    set /a position+=1
    goto :debut

    :resume
    cls
    for %%A in (*.txt) do (

    set count=0
    for /f "usebackq delims=" %%E in ("%%~A") do set /a count+=1
    echo. & echo ==^>^> !count! ### %%~nA

    )

    echo. & pause
    del /f /q "*.txt"
    goto :eof

    1
    1. Utilisateur anonyme
       
      Merci,
      je l'ai même modifier pour qu'il génère en un seul fichier texte avec tout les mot utiliser et je voulais avoir le chiffre de combien de fois il apparaît (car dans le programme il a marquer
      echo 1 fois
      ). Je l'ai remplacer par la variable position et sa me donne la position des mots dans le fichier texte.
      j'ai essayer avec d'autre variable mais je n'ai pas trouver

      @echo off
      Setlocal EnableExtensions EnableDelayedExpansion
      chcp 65001 >nul

      set "phrase="
      cls & echo. & echo Rentrez la phrase ?
      set /p "phrase="
      set "phrase=!phrase! #"
      set position=0
      set "mot="

      :debut
      set caractere=!phrase:~%position%,1!

      if "!caractere!"=="#" (call :resume & exit)

      if not "!caractere!"==" " (
      if not "!caractere!"=="," (
      if not "!caractere!"=="." (set mot=!mot!!caractere!))) else (echo %mot% : %position% fois ; >>fréquence.txt & set "mot=")

      set /a position+=1
      set /a num=!mot!
      goto :debut

      :resume
      cls
      for %%A in (*.txt) do (

      set count=0
      for /f "usebackq delims=" %%E in ("%%~A") do set /a count+=1
      echo. & echo ==^>^> !count! ### %%~nA

      )
      echo %num%
      echo. & pause
      goto :eof
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > Utilisateur anonyme
         
        Tant mieux si ça fonctionne comme tu veux.
        0
  2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Nous ne feront pas votre exercice à votre place.
    Merci de décrire précisément votre problème et en postant le code déjà réalisé.

    Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.

    Pour poster votre code, merci de penser à la coloration syntaxique.
    0
  3. Utilisateur anonyme
     
    j'ai fait le programme mais il a des problème car lorsque que je l'utilise il me donne seulement le dernier mot de la liste avec +1. Or, je veux qu'il me donne tout les mots utiliser et combien de fois il apparais dans la phrase

    @echo off
    Setlocal EnableExtensions EnableDelayedExpansion
    chcp 65001 >nul

    :debut
    set "phrase="
    cls & echo. & echo rentrer la phrase ?
    set /p "phrase="

    for /f "tokens=1,2, delims=#" %%A in (list.txt) do set phrase=!phrase:%%A={%%A}+1

    echo. & echo !phrase! >>log.txt
    echo. & pause
    goto :debut
    0
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      N'ayant pas de quoi vérifier le code (pas l'OS adapté), il me semble que 2 choses peuvent aider.
      - Tu sembles allouer une variable, tu peux les voir avec la commande "SET" (sans paramètres) à mettre après ta boucle for.
      - Retirer le "@echo off" pour voir le déroulé du programme (et peut être ajouter des "echo" dans le for

      Pour le +1, je ne sais pas d'où ça vient.
      0