Programme qui relève les mots des phrase [Résolu/Fermé]

Signaler
Messages postés
24
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
10 janvier 2021
-
Messages postés
13157
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 janvier 2021
-
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

Messages postés
13157
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 janvier 2021
4 041
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

Messages postés
24
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
10 janvier 2021

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
Messages postés
13157
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
15 janvier 2021
4 041 >
Messages postés
24
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
10 janvier 2021

Tant mieux si ça fonctionne comme tu veux.
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
275
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.
Messages postés
24
Date d'inscription
dimanche 17 novembre 2019
Statut
Membre
Dernière intervention
10 janvier 2021

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
Messages postés
14757
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2021
275
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.