Programme qui relève les mots des phrase

Résolu/Fermé
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 - 12 janv. 2020 à 17:10
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 16 févr. 2020 à 16:08
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

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
25 janv. 2020 à 10:26
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
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 11
16 févr. 2020 à 09:57
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
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023
16 févr. 2020 à 16:08
Tant mieux si ça fonctionne comme tu veux.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
12 janv. 2020 à 17:22
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
azerty_9138 Messages postés 54 Date d'inscription dimanche 17 novembre 2019 Statut Membre Dernière intervention 17 janvier 2023 11
19 janv. 2020 à 17:58
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
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
19 janv. 2020 à 20:42
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