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.
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
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
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
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
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 ). 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