Bonjour tout le monde,
Je cherche la fonction et/ou script qui permet de calculer le nombre de caractères et le nombre de mots contenus dans un fichier texte.
Merci pour votre aide.
Cordialement.
[ R ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[ R ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Modifié en dernier par Boulanza le mer. 05 juil. 2023 00:29, modifié 1 fois.
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [ ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Tout dépend de l'encodage du fichier et de ce qu'on considère comme "caractère" et "mot".
En page de code "simple", 1 octet = 1 caractère. Pour les pages de code "multibyte" (asiatiques, comme CJK, BIG5 et autres), c'est compliqué pour un occidental !
En Unicode UTF8 (qui est d'ailleurs aussi un jeu multibyte), UCS2 (utilisé par AutoIt), UTF16 ou UTF32, le nombre de caratères dépend de ce qu'on considère : chaque caractère du jeu Unicode ou des graphèmes, si on inclut les séparateurs et autres points de codes de contrôle (trait d'union conditionnel, sens d'écriture, divers marqueurs, etc.) et aussi la normalisation Unicode utilisée. Pour une introduction, voir cette page https://r12a.github.io/scripts/tutorial/part3.
Cette considération s'applique donc aussi sur ce qu'on doit considérer comme "mot".
On peut utiliser une regex plus ou moins complexe pour obtenir ce qu'on veut, mais il faut déjà s'entendre sur ces définitions.
En page de code "simple", 1 octet = 1 caractère. Pour les pages de code "multibyte" (asiatiques, comme CJK, BIG5 et autres), c'est compliqué pour un occidental !
En Unicode UTF8 (qui est d'ailleurs aussi un jeu multibyte), UCS2 (utilisé par AutoIt), UTF16 ou UTF32, le nombre de caratères dépend de ce qu'on considère : chaque caractère du jeu Unicode ou des graphèmes, si on inclut les séparateurs et autres points de codes de contrôle (trait d'union conditionnel, sens d'écriture, divers marqueurs, etc.) et aussi la normalisation Unicode utilisée. Pour une introduction, voir cette page https://r12a.github.io/scripts/tutorial/part3.
Cette considération s'applique donc aussi sur ce qu'on doit considérer comme "mot".
On peut utiliser une regex plus ou moins complexe pour obtenir ce qu'on veut, mais il faut déjà s'entendre sur ces définitions.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [ ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Très intéressant ce lien jc ... à te dégoûter du regex 

" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [ ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
C'est là qu'on voit toute l'utilité de la spécification \X de PCRE sans avoir à en gérer la complexité. C'est ce qui s'approche le plus de ce qu'on entend intuitivement pas "caractère".
Pour ce qui est des mots, il faut décider si MP3 est un mot, Z dans "génération Z", 2023 ou 1/2, ...
Il y a tout un monde magique à la racine de ce site, dédié à ces aspects d'Unicode et des multiples systèmes d'écriture de notre petite planète, plus quelques utilitaires en ligne bien sympas et surtout à jour. L'auteur fait partie du consortium Unicode et sait de quoi il parle. La doc officielle d'Unicode est peu digeste et à réserver aux spécialistes.
Pour ce qui est des mots, il faut décider si MP3 est un mot, Z dans "génération Z", 2023 ou 1/2, ...
Il y a tout un monde magique à la racine de ce site, dédié à ces aspects d'Unicode et des multiples systèmes d'écriture de notre petite planète, plus quelques utilitaires en ligne bien sympas et surtout à jour. L'auteur fait partie du consortium Unicode et sait de quoi il parle. La doc officielle d'Unicode est peu digeste et à réserver aux spécialistes.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [ ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Bonsoir,
C'est très intéressons ces explications que j'ignore complètement. Merci infiniment Monsieur jchd pour ces informations.
Cordialement.
C'est très intéressons ces explications que j'ignore complètement. Merci infiniment Monsieur jchd pour ces informations.
Cordialement.
Re: [ R ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Ce site est une véritable mine d'or.
Merci pour le lien.
Merci pour le lien.

AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
- jchd
- AutoIt MVPs (MVP)
- Messages : 2282
- Enregistré le : lun. 30 mars 2009 22:57
- Localisation : Sud-Ouest de la France (43.622788,-1.260864)
- Status : Hors ligne
Re: [ R ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Oui, un compendium bien utile et incomparablement plus accessible à nous autres non spécialistes que la volumineuse et très pointilleuse documentation officielle.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Re: [ R ] Je cherche la fonction qui permet de calculer le nombre de caractères et mots contenus dans un fichier texte
Une des solutions
Code : Tout sélectionner
;Définir le nombre de caractères de toutes les lignes d'un fichier texte
$file = FileOpen(@ScriptDir&"\Test.txt" , 0)
; test si le fichier peut etre ouvert en lecture
If $file = -1 Then
MsgBox(0, "Erreur", "Impossible d'ouvrir le fichier")
Exit
EndIf
$NbreCaractereTotal = 0
; Lecture du fichier ligne à ligne jusqu'au eof + compte du nombre de ligne
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
$NbreCaractere = StringLen($line) ;Définir le nombre de caractères de la dernière ligne.
$NbreCaractereTotal = $NbreCaractereTotal + $NbreCaractere
Wend
msgbox(0,"",$NbreCaractereTotal)
;msgbox(0,"",$NbreCaractere)
FileClose($file)
Exit