Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/05/2022, à 19:11

abecidofugy

[Résolu] Afficher le nombre de mots par phrase

Salut,

En copywriting, ou en écriture moderne, il est recommandé de ne pas écrire plus de 15 mots par phrase. À des fins de lisibilité en français, et que ça soit compréhensible par un ado.

Comme, à ma connaissance, il n’existe pas d’option ou de greffon à Writer de LibreOffice, je me demandais s’il était possible de faire ça avec un script bash.

Le top serait d’avoir un affichage dans le terminal, du genre :

Ceci est ma phrase un. (5)
Je ne sais pas si vous saisissez ce que je veux dire. (12)
Ça affiche la phrase, et entre parenthèses, le nombre de mots. (11)
Avec un retour à la ligne pour chaque phrase. (9)
Peu importe si ça fait partie d’un paragraphe. (9)
Une phrase doit commencer par une majuscule, et finir par un point. (11)
Ou un point d’interrogation ou exclamation, ou points de suspension. (11)

Voilà en gros.

Bien sûr, le pied serait d’avoir un affichage à la volée dans Writer, avec le nombre de mots en petit et en rouge ou vert, selon la longueur choisie tongue

Une aide en bash en attendant ? Merci.

Dernière modification par abecidofugy (Le 24/05/2022, à 20:37)


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#2 Le 23/05/2022, à 19:27

Hizoka

Re : [Résolu] Afficher le nombre de mots par phrase

Salut, il suffit d'utiliser wc -w sur chaque ligne

echo "Ceci  est ma  phrase un." |  wc -w
=> 5

Hors ligne

#3 Le 23/05/2022, à 19:36

Amiralgaby

Re : [Résolu] Afficher le nombre de mots par phrase

je me demandais s’il était possible de faire ça avec un script bash

Je ne juges pas mais si c'était pas possible ça serait drôle d'avoir des langages de programmation qui on des limites de ce genre wink

#!/bin/sh

fileInput="test"
fileOutput="retour" # avec les nombres entre paranthèses

touch "$fileOutput"

while read p; do
        nb=$(echo "$p" | wc --words)
        echo "$p ($nb)" >> "$fileWithNumber"
done < "$file"

Voyons ce que propose les autres Ubunteros smile

Dernière modification par Amiralgaby (Le 24/05/2022, à 20:39)


Vive la communauté du Libre !!!

Hors ligne

#4 Le 23/05/2022, à 21:21

Watael

Re : [Résolu] Afficher le nombre de mots par phrase

en full bash :

while read -ra line
do
    echo "${line[@]} (${#line[*]})"
done <"$ficIn" >"$ficOut"

Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 23/05/2022, à 21:37

Tawal

Re : [Résolu] Afficher le nombre de mots par phrase

Excellent smile

Mais on ne parle pas des mots contractés, comment sont-ils comptés ?

C'est quand même chaud l'enfer !

Combien de mots ?
5 ou 7 ?


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#6 Le 23/05/2022, à 21:39

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

Tawal a écrit :

Excellent smile

Mais on ne parle pas des mots contractés, comment sont-ils comptés ?

C'est quand même chaud l'enfer !

Combien de mots ?
5 ou 7 ?

Normalement 7, en toute logique, mais je pense qu’on peut se rabattre sur 5 sûrs ^^

Je vais tester les commandes et vous tiens au courant. Merci, vous êtes vraiment des cracks.

Dernière modification par abecidofugy (Le 23/05/2022, à 21:40)


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#7 Le 23/05/2022, à 21:53

MicP

Re : [Résolu] Afficher le nombre de mots par phrase

Bonjour

Dans son message #5, Tawal a écrit :

…Combien de mots ?…

il y en a 6 :

-1 C'est
-2 quand
-3 même
-4 chaud
-5 l'enfer
-6 !

michel@debbull:~$ phrase="C'est quand même chaud l'enfer !"
michel@debbull:~$ monTableau=( $phrase )
michel@debbull:~$ echo ${#monTableau[@]}
6
michel@debbull:~$ 

Dernière modification par MicP (Le 23/05/2022, à 21:58)


Retour utilisable de commande
2.d  Le prompt final : - permet de s'assurer que la commande est allée à son terme,- permet de s'assurer que la réponse du système n'est pas coupée à la fin,- et fournit parfois d'autres informations, détaillées dans le message #42

Hors ligne

#8 Le 23/05/2022, à 21:57

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

Amiralgaby a écrit :

je me demandais s’il était possible de faire ça avec un script bash

Je ne juges pas mais si c'était pas possible ça serait drôle d'avoir des langages de programmation qui on des limites de ce genre wink

#!/bin/sh

fileInput="test"
fileOutput="retour" # avec les nombres entre paranthèses

touch "$fileWithNumber"

while read p; do
        nb=$(echo "$p" | wc --words)
        echo "$p ($nb)" >> "$fileWithNumber"
done < "$file"

Voyons ce que propose les autres Ubunteros smile

Hum, bizarre ce que j’ai :

patrice@bigtower:~/scripts/redactionnel$ ll
total 16
drwxr-xr-x 2 patrice patrice 4096 mai   23 21:55 ./
drwxr-xr-x 4 patrice patrice 4096 mai   23 21:48 ../
-rwxr-xr-x 1 patrice patrice  226 mai   23 21:51 ensh.sh*
-rw-r--r-- 1 patrice patrice  378 mai   23 21:54 test
patrice@bigtower:~/scripts/redactionnel$ ./ensh.sh
touch: cannot touch '': No such file or directory
./ensh.sh: 8: cannot open : No such file

Dernière modification par abecidofugy (Le 23/05/2022, à 22:01)


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#9 Le 23/05/2022, à 22:03

Watael

Re : [Résolu] Afficher le nombre de mots par phrase

while read -ra line
do
    mots=( ${line[@]//[[:punct:]]/} )
    echo "${line[@]} (${#mots[*]})" # C'est quand même chaud l'enfer ! (5)
done <"$ficIn" >"$ficOut"

Welcome to sHell. · eval is evil.

Hors ligne

#10 Le 23/05/2022, à 22:09

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

@MicP : merci, c’est ça.

Par contre, je précise quelque chose en plus : le texte peut être en paragraphes (donc avec plusieurs phrases) ou simples lignes avec des retours à la ligne, ou avec des lignes sautées. Bref, quelque chose de typique dans le copywriting reçu par mail.

Dans le output, il faudrait que tout le texte soit affiché (splitté) en phrases. Car là, pour l’instant, j’obtiens 67 wink


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#11 Le 23/05/2022, à 22:10

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

Watael a écrit :

en full bash :

while read -ra line
do
    echo "${line[@]} (${#line[*]})"
done <"$ficIn" >"$ficOut"

C’est le script entier ?


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#12 Le 23/05/2022, à 22:14

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

En un paragraphe. :

Ceci est ma phrase un. Je ne sais pas si vous saisissez ce que je veux dire. Ça affiche la phrase, et entre parenthèses, le nombre de mots. Avec un retour à la ligne pour chaque phrase. Peu importe si ça fait partie d’un paragraphe. Une phrase doit commencer par une majuscule, et finir par un point. Ou un point d’interrogation ou exclamation, ou points de suspension.

Donc pour faciliter la lecture, je pensais faire des retours à la ligne pour chaque phrase, avec le nombre de mots entre parenthèses.

Dernière modification par abecidofugy (Le 23/05/2022, à 22:21)


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#13 Le 23/05/2022, à 23:08

Watael

Re : [Résolu] Afficher le nombre de mots par phrase

abecidofugy a écrit :
Watael a écrit :

en full bash :

while read -ra line
do
    echo "${line[@]} (${#line[*]})"
done <"$ficIn" >"$ficOut"

C’est le script entier ?

quasiment.
il manque la définition des fichiers entrée/sortie, et le shebang.

j'ai mis une nouvelle version (au #9) pour supprimer les ponctuations, et où "C'est quand même chaud l'enfer !" = 5 mots

Dernière modification par Watael (Le 23/05/2022, à 23:09)


Welcome to sHell. · eval is evil.

Hors ligne

#14 Le 24/05/2022, à 06:13

MicP

Re : [Résolu] Afficher le nombre de mots par phrase

Bonjour

Pour séparer chaque phrase par un retour à la ligne en utilisant sed
je remplace par un retour à la ligne,
chacune des suites d'un caractère de ponctuation qui est suivit d'un caractère espace et qui est suivit d'un caractère en majuscule

michel@debbull:~$ cat fich.txt 
Ceci est ma phrase un. Je ne sais pas si vous saisissez ce que je veux dire. Ça affiche la phrase, et entre parenthèses, le nombre de mots. Avec un retour à la ligne pour chaque phrase. Peu importe si ça fait partie d’un paragraphe. Une phrase doit commencer par une majuscule, et finir par un point. Ou un point d’interrogation ou exclamation, ou points de suspension.
michel@debbull:~$ 
michel@debbull:~$ sed 's/\([[:punct:]]\) \([[:upper:]]\)/\1\n\2/g' fich.txt
Ceci est ma phrase un.
Je ne sais pas si vous saisissez ce que je veux dire.
Ça affiche la phrase, et entre parenthèses, le nombre de mots.
Avec un retour à la ligne pour chaque phrase.
Peu importe si ça fait partie d’un paragraphe.
Une phrase doit commencer par une majuscule, et finir par un point.
Ou un point d’interrogation ou exclamation, ou points de suspension.
michel@debbull:~$ 

=======
Mais si dans le texte, il y avait :

J'ai fait ça avec mon système préféré : Linux.

ça donnerait :

J'ai fait ça avec mon système préféré :
Linux.

Donc, je pense qu'il vaudrait mieux remplacer [[punct]] dans le motif de recherche
par un simple caractère point (où alors une suite définie de caractères de ponctuation).

michel@debbull:~$ cat fich.txt 
J'ai fait ça avec mon système préféré : Linux. Ceci est ma phrase un. Je ne sais pas si vous saisissez ce que je veux dire. Ça affiche la phrase, et entre parenthèses, le nombre de mots. Avec un retour à la ligne pour chaque phrase. Peu importe si ça fait partie d’un paragraphe. Une phrase doit commencer par une majuscule, et finir par un point. Ou un point d’interrogation ou exclamation, ou points de suspension.
michel@debbull:~$ 
michel@debbull:~$ sed 's/\. \([[:upper:]]\)/.\n\1/g' fich.txt
J'ai fait ça avec mon système préféré : Linux.
Ceci est ma phrase un.
Je ne sais pas si vous saisissez ce que je veux dire.
Ça affiche la phrase, et entre parenthèses, le nombre de mots.
Avec un retour à la ligne pour chaque phrase.
Peu importe si ça fait partie d’un paragraphe.
Une phrase doit commencer par une majuscule, et finir par un point.
Ou un point d’interrogation ou exclamation, ou points de suspension.
michel@debbull:~$ 

Dernière modification par MicP (Le 24/05/2022, à 06:28)


Retour utilisable de commande
2.d  Le prompt final : - permet de s'assurer que la commande est allée à son terme,- permet de s'assurer que la réponse du système n'est pas coupée à la fin,- et fournit parfois d'autres informations, détaillées dans le message #42

Hors ligne

#15 Le 24/05/2022, à 09:28

pingouinux

Re : [Résolu] Afficher le nombre de mots par phrase

Bonjour,
En python :

$ cat comptage.py 
#!/usr/bin/env python3
import re, sys
txt=sys.stdin.read()

# Découpage en phrases (qui se terminent par ".", "!", "?" ou "...")
ligs=re.sub('((\.\.\.|[.!?]) *)\n?',r'\1\n',txt)

# On parcourt les lignes et on en compte les mots
for lig in re.split('\n',ligs)[:-1]: print("%s (%d)"%(lig,len(re.findall('\w+',lig))))
$ cat fic_in
Ceci est   ma phrase un.   
Je ne sais pas si vous saisissez ce que je veux dire.
Ça affiche la phrase, et entre parenthèses, le nombre de mots.
Avec un retour à la ligne pour chaque phrase.
Peu importe si ça fait partie d’un paragraphe.
Une phrase doit commencer par une majuscule, et finir par un point.
Ou un point d’interrogation ou exclamation , ou points de suspension...
C'est quand même chaud l'enfer !
Ceci est   ma phrase un.  Je ne sais pas si vous saisissez ce que je veux dire.  Ça affiche la phrase, et entre parenthèses, le nombre de mots.  Avec un retour à la ligne pour chaque phrase.  Peu importe si ça fait partie d’un paragraphe.  Une phrase doit commencer par une majuscule, et finir par un point.  Ou un point d’interrogation ou exclamation , ou points de suspension...  C'est quand même chaud l'enfer !
$ ./comptage.py <fic_in >fic_out

$ cat fic_out
Ceci est   ma phrase un.    (5)
Je ne sais pas si vous saisissez ce que je veux dire. (12)
Ça affiche la phrase, et entre parenthèses, le nombre de mots. (11)
Avec un retour à la ligne pour chaque phrase. (9)
Peu importe si ça fait partie d’un paragraphe. (9)
Une phrase doit commencer par une majuscule, et finir par un point. (12)
Ou un point d’interrogation ou exclamation , ou points de suspension... (11)
C'est quand même chaud l'enfer ! (7)
Ceci est   ma phrase un.   (5)
Je ne sais pas si vous saisissez ce que je veux dire.   (12)
Ça affiche la phrase, et entre parenthèses, le nombre de mots.   (11)
Avec un retour à la ligne pour chaque phrase.   (9)
Peu importe si ça fait partie d’un paragraphe.   (9)
Une phrase doit commencer par une majuscule, et finir par un point.   (12)
Ou un point d’interrogation ou exclamation , ou points de suspension...   (11)
C'est quand même chaud l'enfer ! (7)

Hors ligne

#16 Le 24/05/2022, à 20:37

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

WOW! Je vais tester tout ça, la version python c’est super efficace également.

J’ai jeté un coup d’œil aux extensions LibreOffice https://extensions.libreoffice.org/ je n’ai rien trouvé de tel, donc je vais rester sur la solution en bash ou python.

Merci à tous !


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#17 Le 24/05/2022, à 20:43

Amiralgaby

Re : [Résolu] Afficher le nombre de mots par phrase

Hum, bizarre ce que j’ai :

patrice@bigtower:~/scripts/redactionnel$ ll
total 16
drwxr-xr-x 2 patrice patrice 4096 mai   23 21:55 ./
drwxr-xr-x 4 patrice patrice 4096 mai   23 21:48 ../
-rwxr-xr-x 1 patrice patrice  226 mai   23 21:51 ensh.sh*
-rw-r--r-- 1 patrice patrice  378 mai   23 21:54 test
patrice@bigtower:~/scripts/redactionnel$ ./ensh.sh
touch: cannot touch '': No such file or directory
./ensh.sh: 8: cannot open : No such file

Effectivement, j'ai fait une faute, my bad. Je suis quand même déçu que tu n'as pas voulu régler ma propre erreur roll lol


Vive la communauté du Libre !!!

Hors ligne

#18 Le 28/05/2022, à 13:15

nany

Re : [Résolu] Afficher le nombre de mots par phrase

Bonjour,



J’arrive après la bataille mais je souhaite quand même ajouter ma pierre à l’édifice, alors voilà :

  1. comme la demande concerne Libreoffice Writer, il existe un outil de statistiques ;
    1653411174.png
    cet outil comporte deux inconvénients ; Il faut sélectionner chaque phrase une par une pour voir les stats et le compte de mots se fait comme décrit par MicP en #7 ;

  2. alors j’ai fait moi aussi mon script bash en tenant compte de ce qui a été dit ici et qui commence par une conversion d’un fichier .odt en .txt ;

    ┏[ Ubuntu 22.04 LTS (Jammy Jellyfish) - samedi 28 mai 2022 ]
    ┣ nany@stupidcomputer :
    ┗▶ ~$ cat ~/.local/bin/cptmots
    #!/bin/bash
    
    # indentation : deux espaces
    
    # license:
    # ----------------------------------------------------------------------------
    #  "THE BEER-WARE LICENSE" (Revision 42):
    #  <nany@forum.ubuntu-fr.org> wrote this file. As long as you retain this
    #  notice you can do whatever you want with this stuff. If we meet some day,
    #  and you think this stuff is worth it, you can buy me a beer in return. nany
    # ----------------------------------------------------------------------------
    #
    # licence :
    # ----------------------------------------------------------------------------
    #  "LICENCE BEERWARE" (Révision 42):
    #  <nany@forum.ubuntu-fr.org> a créé ce fichier. Tant que vous conservez cet
    #  avertissement, vous pouvez faire ce que vous voulez de ce truc. Si on se
    #  rencontre un jour et que vous pensez que ce truc vaut le coup, vous pouvez
    #  me payer une bière en retour. nany
    # ----------------------------------------------------------------------------
    
    usage () {
      echo
      echo "Usage : $0 fichier"
      echo
      echo "Ce script a pour argument obligatoire un et un seul fichier .odt."
    }
    
    if test ${#@} -eq 1 ; then
      ficW=$1
    else
      usage
      exit
    fi
    if test "${ficW##*.}" != "odt" ; then
      usage
      exit
    fi
    if test ! -e "$ficW" ; then
      echo "$ficW n’existe pas."
      usage
      exit
    fi
    ficIn=${ficW##*/}
    ficIn=${ficIn/.odt/.txt}
    
    cd /tmp
    libreoffice --convert-to txt "$ficW" > /dev/null 2>&1
    echo
    cat "$ficIn"
    echo
    # traitement des espaces (ordinaires et insécables fines ou non) dupliquées
    # et changement de ligne à chaque phrase (point puis espace suivis d’une maj.)
    sed -ri 's/ +/ /g;s/ +/ /g;s/+//g;s/([\.!?…]) ([[:upper:]])/\1\n\2/g' "$ficIn"
    
    while read -ra line
    do
      # remplace les apostrophes par des espaces pour bien compter TOUS les mots
      mots=( ${line[@]//[\'’]/ } )
      # efface la ponctuation pour ne pas compter
      # les signes doubles avec espaces comme des mots
      mots=( ${mots[@]//[[:punct:]]/} )
      # test du nombre de mots pour la couleur, limite à 10 pour cet exemple
      if test ${#mots[*]} -gt 10 ; then
        color='\033[1;31m' # gras et rouge
      else
        color='\033[1;32m' # gras et vert
      fi
      echo -e "${line[@]} ($color${#mots[*]}\033[0m)"
    done <"$ficIn"
    
    ┏[ Ubuntu 22.04 LTS (Jammy Jellyfish) - samedi 28 mai 2022 ]
    ┣ nany@stupidcomputer :
    ┗▶ ~$ cptmots ~/Documents/test.odt
    
    Ceci est ma phrase un. Je ne sais pas si vous saisissez ce que je veux dire. Ça affiche la phrase, et entre parenthèses, le nombre de mots. Avec un retour à la ligne pour chaque phrase. Peu importe si ça fait partie d’un paragraphe.
    Une phrase doit commencer par une majuscule, et finir par un point. Ou un point d’interrogation ou exclamation, ou points de suspension…
    C’est quand même chaud l’enfer !
    J’ai fait ça avec mon système préféré : Linux.
    
    Ceci est ma phrase un. (5)
    Je ne sais pas si vous saisissez ce que je veux dire. (12)
    Ça affiche la phrase, et entre parenthèses, le nombre de mots. (11)
    Avec un retour à la ligne pour chaque phrase. (9)
    Peu importe si ça fait partie d’un paragraphe. (9)
    Une phrase doit commencer par une majuscule, et finir par un point. (12)
    Ou un point d’interrogation ou exclamation, ou points de suspension… (11)
    C’est quand même chaud l’enfer ! (7)
    J’ai fait ça avec mon système préféré : Linux. (9)
    
    ┏[ Ubuntu 22.04 LTS (Jammy Jellyfish) - samedi 28 mai 2022 ]
    ┣ nany@stupidcomputer :
    ┗▶ ~$

    le détail en couleurs ;
    1653735379.png

  3. la solution python est très séduisante et je me suis dit qu’une macro serait pas mal ; or comme l’IDE de Libreoffice ne permet d’éditer que du BASIC j’ai donc fait une macro dans ce langage ;

    REM  *****  BASIC  *****
    
    ' license:
    ' ----------------------------------------------------------------------------
    '  "THE BEER-WARE LICENSE" (Revision 42):
    '  <nany@forum.ubuntu-fr.org> wrote this macro. As long as you retain this
    '  notice you can do whatever you want with this stuff. If we meet some day,
    '  and you think this stuff is worth it, you can buy me a beer in return. nany
    ' ----------------------------------------------------------------------------
    '
    ' licence :
    ' ----------------------------------------------------------------------------
    '  "LICENCE BEERWARE" (Révision 42):
    '  <nany@forum.ubuntu-fr.org> a créé cette macro. Tant que vous conservez cet
    '  avertissement, vous pouvez faire ce que vous voulez de ce truc. Si on se
    '  rencontre un jour et que vous pensez que ce truc vaut le coup, vous pouvez
    '  me payer une bière en retour. nany
    ' ----------------------------------------------------------------------------
    
    sub Main
    rem ----------------------------------------------------------------------
    rem define variables
    dim oVC as object
    dim oCursor as object
    dim oTC as object
    dim oStart as object
    dim oEnd as object
    dim nWC as integer
    dim st as string
    dim sWC as string
    rem ----------------------------------------------------------------------
    
    sWC = ""
    oVC = ThisComponent.getCurrentController.getViewCursor
    oCursor = oVC.getText.createTextCursorByRange(oVC)
    oCursor.gotoStart(false)
    oVC.gotoRange(oCursor,false)
    oTC = ThisComponent.Text.createTextCursorByRange(oCursor)
    Do 'parcours des paragraphes
        oCursor.gotoEndOfParagraph(false)
        oTC.gotoRange(oCursor,false)
        oVC.gotoRange(oCursor,false)
        oCursor.gotoStartOfParagraph(false)
        oTC.gotoRange(oCursor,false)
        oVC.gotoRange(oCursor,false)
        oCursor.gotoNextSentence(true)
        Do 'parcours des phrases
            oTC.gotoRange(oCursor,true)
            oVC.gotoRange(oCursor,true)
            st = oTC.getString()
            if Len(st) = 0 then Exit Do
            oStart = oTC.getStart()
            oEnd = oTC.getEnd()
            nWC = 0
            oCursor.gotoRange(oStart,false)
            oVC.gotoRange(oCursor,false)
            Do 'parcours des mots
                nWC = nWC + 1
                oCursor.gotoNextWord(true)
                oVC.gotoRange(oCursor,true)
            Loop While oVC.getString() <> st
            nWC = nWC + UBound(Split(st,"’"))
            if sWC = "" then
                sWC = st & " (" & nWC & ")"
            else
                sWC = sWC & chr(13) & st & " (" & nWC & ")"
            end if
            oCursor.gotoRange(oEnd,false)
            oTC.gotoRange(oCursor,false)
            oVC.gotoRange(oCursor,false)
        Loop While oCursor.gotoNextSentence(false)
    Loop While oCursor.GotoNextParagraph(false)
    oCursor.gotoStart(false)
    oVC.gotoRange(oCursor,false)
    MsgBox(sWC,MB_OK + MB_ICONINFORMATION,"Nombre de mots par phrase :")
    
    end sub

    ça m’a rappelé l’ancien temps (que les moins de vingt ans…) où je faisais du VBA sur Micosoft Office ;
    le résultat ;
    1653735723.png

  4. à qui le tour pour une macro en python (qui, je pense, serait plus concise) ?

My two cents.

Hors ligne

#19 Le 28/05/2022, à 13:25

abecidofugy

Re : [Résolu] Afficher le nombre de mots par phrase

@nany : je suis tout admiratif. Tu touches bien avec ton « stupidcomputer » wink

Je voudrais tant savoir coder autre chose que du html ( lol ) et je donnerais bien mon bras droit pour ça. Quoique, il me faudrait les deux pour bien saisir tongue

Je vais tester tout ça dès demain.


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées. https://bugs.kde.org/
Agence de communication en Alsace · web · print

Hors ligne

#20 Le 28/05/2022, à 14:21

Watael

Re : [Résolu] Afficher le nombre de mots par phrase

@nany : il y a une apostrophe de trop, et les crochets ne sont pas nécessaires : mots=( ${line[@]//\'/ } )


Welcome to sHell. · eval is evil.

Hors ligne

#21 Le 28/05/2022, à 14:30

nany

Re : [Résolu] Afficher le nombre de mots par phrase

Attention, je différencie bien la single quote (') de l’apostrophe typographique (’). Ce sont bien deux caractères différents. wink

Hors ligne

#22 Le 28/05/2022, à 14:35

Watael

Re : [Résolu] Afficher le nombre de mots par phrase

ah, d'accord! tu devrais le préciser dans ton commentaire, alors. smile

ça me dit quelque chose... je me demande si je ne me suis pas déjà fait avoir avec ces apostrophes différents...


Welcome to sHell. · eval is evil.

Hors ligne

#23 Le 28/05/2022, à 14:57

nany

Re : [Résolu] Afficher le nombre de mots par phrase

Watael a écrit :

ah, d'accord! tu devrais le préciser dans ton commentaire, alors. smile

C’est vrai, mais c’est tellement évident pour moi que je n’y pense pas.
D’ailleurs, il y a un autre problème, c’est que les espaces insécables fines ne passent pas sur ce forum (pas même dans un bloc de code), donc :

sed -ri 's/ +/ /g;s/ +/ /g;s/<insérer ici une espace insécable fine>+/<insérer ici une espace insécable fine>/g;s/([\.!?…]) ([[:upper:]])/\1\n\2/g' "$ficIn"

Dernière modification par nany (Le 28/05/2022, à 14:58)

Hors ligne

#24 Le 28/05/2022, à 15:05

Watael

Re : [Résolu] Afficher le nombre de mots par phrase

nany a écrit :
Watael a écrit :

ah, d'accord! tu devrais le préciser dans ton commentaire, alors. smile

C’est vrai, mais c’est tellement évident pour moi que je n’y pense pas.

je n'utilise pas de suite bureautique, ni d'éditeur de texte en mode graphique. sad
je risque d'avoir oublié ces subtilités dès... de quoi on parlait ?
big_smile


Welcome to sHell. · eval is evil.

Hors ligne

#25 Le 28/05/2022, à 15:46

MicP

Re : [Résolu] Afficher le nombre de mots par phrase

Bonjour

@nany

On peut remplacer :

<insérer ici une espace insécable fine>

par :

\xe2\x80\xaf

Retour utilisable de commande
2.d  Le prompt final : - permet de s'assurer que la commande est allée à son terme,- permet de s'assurer que la réponse du système n'est pas coupée à la fin,- et fournit parfois d'autres informations, détaillées dans le message #42

Hors ligne