Hi
Using TypingAid and although it is excellent, I was dissatisfied because he does not propose possible words based on their frequency of use but in alphabetical order.
Also being newbe with AutoHotkey, I went back to v1.3 TypingAid to change it and meet my expectations.
The script below:
- Propose words based on their frequency of use,
- Frequency of use are updated each time you complete the word,
- Selecting a word among the proposals is carried out with the function key F1 to F10
- A word can be removed from the word base as you type a text by copying it to the clipboard and by F11,
- To use the normal function keys you must type Ctrl F1, F2 Ctrl ...
- A word can be added to the base with F12 after its seizure,
- A set of words can be added to the database by copying text to the clipboard, then Ctrl Shift A
- The base file known words can be set / reset with Ctrl Shift R
The display uses tooltip proposals. I would have preferred to do differently in order to change its format (font, size ...) but I do not know enough AutoHotkey also if someone could advise me, I'm interested
Code:
;TypingAide v1.3 Mod RB_Boulay
;
;Basé sur TypingAid V1.3 de
; - Jordi S
; Heavily modified by:
; - Maniac
; modified by:
; - Asaptrad
; - Artwinauto.com
;
; Ce mod gére la fréquence d'utilisation des mots utilisés par le scipteur --> les propositions sont classées sur la fréquence d'utilisation des mots au lieu d'un classement alphabétique.
; La suppression d'un mot de la liste des mots enregsitrée se fait directement dans le texte en cours de saisie en le copiant et en faisant F12.
; L'ajout d'un mot en cours de saisie est réalisé par F11.
; Il est possible d'ajouter un ensemble de mots en copiant un texte dans le clip board puis Ctrl shift A.
; Le fihier Wordlistbase.txt est initialisé/réinitialisé avec Ctrl Shift R.
; Les mots ajoutés à la base ne peuvent contenir que des caractères alphabétiques.
; Des hottkey supplémentaire on été ajoutées pour manipuler les fenètres et faire un double clic gauche.
; Ctrl Shift ShiftLock met fin au script.
;___________________________________________
;--------------------------------------------------------------------------------------------------------------
; initialisation et Définition des variables
;--------------------------------------------------------------------------------------------------------------
#SingleInstance force
WinGetPos,,,,TrayHeight,ahk_class Shell_TrayWnd,,, ; This line is only needed once.
Width:=A_ScreenWidth
Height:=A_ScreenHeight
Fenetre_Aide =
ETitle = ; si non blanc limite l'utilisation de TypingAid au fenêtre dont le titre contient la chaîne de caractère de ETitle
Longueur_Mini_Mot_Appris = 5 ; Longueur mini des mots pouvant être ajoutés à la liste
Longueur_Mini = 3 ; Nombre de lettres saisies avant de faire des propositions
Mot_Saisi= ; suite des caractères saisi
key= ; valeur de 0 à 10 associée au hotkey de sélection d'une proposition
Efface_Mot_Saisi=1 ; flag pour indiquer s'il faut effecer Mot_Saisi lors de la remise à zéro de la sasie (sub : RAZ_Saisie)
MouseX = 0 ; Position x de la sourie
MouseY = 0 ; Position Y de la sourie
motsec = ; copie du mot (Mot_Saisi)
motenvoye = ; Copie du Mot envoyé à la fenêtre active ou mot extrait d'un texte utilisé pour mise à jour fréquenc et ajout de mots
Envoi= ; Mot envoyé à la fenêtre active
CR:=Chr(13) ; retour chariot
LF:=chr(10) ; line feed
espace:=chr(32) ; espace
apostrophe:=chr(39)
Frequence_Initiale=999999 ; fréquence d'un mot par défaut, le tri étant fait de manière croissante
Frequence= ; Fréquence d'utilisation d'un mot le tri de la wordlistbase.txt se faisant en ordre croissant, la fréquence d'utilisation est d'autant plus élévée que la valeur de la variable est faible. La Valuer mini de la frequence est de 100000 pour conserver la structure du fichier.
Nouvelle_Frequence= ; Frequence + 1
liste= ;contenu de wordlistbase
position= ;position du début d'un mot lors de la recherche dans la liste de mots
Gosub,RAZ_Saisie ; clean vars from start
CoordMode, ToolTip, Relative
CoordMode, Mouse, Relative
AutoTrim, Off
SetTimer, Winchanged, 100
;-------------------------------------------------------------------------------------------------------------------
;Tri de la liste des mots classés en fréquence
;---------------------------------------------------------------------------------------------------------------------
FileRead, liste, %A_ScriptDir%\Wordlistbase.txt ;met les motes de la liste de base (avec fréquence ) dans liste
Sort, liste ;tri la liste en décroissant sur la fréquence
FileDelete, %A_ScriptDir%\Wordlistbase.txt
FileAppend, %liste%, %A_ScriptDir%\wordlistbase.txt ;Sauvegarde la liste triée
;--------------------------------------------------------------------------------------------------------------
; Saisie des caracteres et affichage propositions
;--------------------------------------------------------------------------------------------------------------
Loop
{
;Enregistre l'id de la fenêtre active et vérifie si elle est une fenêtre d'une application autorisée
WinGetActiveTitle, ATitle ; ATitle nom de la fenêtre active
WinGet, A_id, ID, %ATitle% ; A_id N° d'identification de la fenêtre active
IfNotInString, ATitle, %ETitle% ; si la fenêtre n'est pas celle d'une application autorisée avec ETitle alors réinitialise le mot en cours de saisie
{
ToolTip
Mot_Saisi=
gosub, RAZ_Saisie ;réinitialise la liste de propositions
Continue ;Reprends la boucle au début
}
;saisie d'un caractère à la fois variable chr L1 option pour voir le caractère à l'écran V pour caractère de fin de saisie donné par la liste qui suit
;Input, Caractere, L1 V,{enter}{space}.;`:¿?¡!(){}{}}{bs}{{}{esc}{tab}{Home}{End}{PgUp}{PdDn}{Up}{Dn}{Left}{Right}{bs}
Input, Caractere, L1 V,{enter}{space}.;`:¿?¡!(){bs}{{}{esc}{tab}{Home}{End}{PgUp}{PdDn}{Up}{Dn}{Left}{Right}
EndKey = %errorlevel% ; EndKey contient le nom de la touche de fin pressée Si une touche différente est pressée alors contient MAX
;Vérifie a chaque saisie que la fenêtre active est la même que celle de la saisie précédente si non réinitialise le mot en cours de saisie
WinGetActiveTitle, ATitle ; ATitle nom de la fenêtre active
WinGet, A_id2, ID, %ATitle% ; A_id2 N° d'identification de la fenêtre active
IfNotEqual, A_id, %A_id2% ; si la fenêtre A_id2 n'est pas celle dans laquelle a débutée la saisie A_id fait un reset des variables
{
gosub, RAZ_Saisie ;réinitialise la liste de propositions
Mot_Saisi= %Caractere% ;Commence un nouveau mot dans la nouvelle fenêtre
Continue ;Reprends la boucle au début
}
;vérifie la position du caret si le caret a bougé réinitialise le mot en cours de saisie
ifequal, OldCaretY,
{
OldCaretY = HCaretY()
}
ifnotequal, OldCaretY, HCaretY()
{
gosub, RAZ_Saisie ;réinitialise la liste de propositions
Mot_Saisi= %Caractere% ;Commence un nouveau mot dans la nouvelle fenêtre
Continue ;Reprends la boucle au début
}
OldCaretY=HCaretY()
;Test le caractere de fin de mot
ifequal, EndKey, Endkey:BackSpace ; test backspace
{
StringLen, Longueur, Mot_Saisi
IfNotEqual, Longueur, 0
{
ifequal, Longueur, 1
{
Gosub,Raz_Saisie
}
else
{
StringTrimRight, Mot_Saisi,Mot_Saisi, 1 ; supprime la dernière lettre du mot en cour de saisie si backspace
}
}
}
else ifequal, EndKey, Max
{
Setenv, Mot_Saisi, %Mot_Saisi%%Caractere% ; ajoute la lettre valide au mot qui se construit
StringLower, Mot_Saisi, Mot_Saisi ; Force en minuscule
Motsec:=Mot_Saisi
}
else gosub,RAZ_Saisie
;ne fait pas la recherche du mot dans la liste de mot tant que la saisie en cours n'a pas le nombre de caractere voulu
StringLen, Longueur, Mot_Saisi
If (Longueur<Longueur_Mini)
{
tooltip
Continue ;Reprends la boucle au début
}
;valide le mot avant de rechercher dans la liste il ne doit y avoir que des caractères alphabétiques
OK=0
If Longeur=0
{
Continue
}
Else
{
loop, %Longueur% ;test chaque caractere du mot saisi
{
StringMid,Caractere, Mot_Saisi,%A_Index%,1
asccar:=asc(Caractere)
if (((asccar>96 and asccar<123) or(asccar=156) or (asccar=224)or (asccar=225)or (asccar>230 and asccar<236) or (asccar=238) or (asccar=239)or (asccar=244)or (asccar=246)or (asccar=249)or (asccar=251)or (asccar=252)) and OK<>2)
{
OK=1 ; le caractére est alphabétique
}
Else
{
OK=2 ; le caractére est numérique
}
}
If(OK=2) ; ne fait pas la recherche si il y a un caractére numérique mais conserve Mot_Saisi pour pouvoir le corriger avec Backspace
{
ToolTip ;réinitialise la liste de propositions
Continue ;Reprends la boucle au début
}
}
; recherche le mot dans la liste.
FileRead, liste,%A_ScriptDir%\wordlistbase.txt ;mets le fichier de mot dans lal variable liste
Index_ToolTip=0 ;index du mot trouvé
Mot_Trouve=
Liste_Trouve=
Index_Tooltip=0
Loop
{
IfEqual Index_tooltip, 10
{
Break
}
StringGetPos, Position, liste, %Mot_Saisi%,L%A_Index% ;recherche les occurences du mot saisi
Caractere_Recherche:=SubStr(liste,Position,1) ;lit le code ASCII du premier caractère trouvé
asccar:=asc(Caractere_Recherche)
if (Position > 0) ;si 1 mot est trouvé
{
if (asccar > 47 and asccar < 60) ;teste le caractère pour faire la différence entre automobile et mobile il doit être numérique
{
Index_ToolTip+=1 ; ajoute 1 à l'index pour la position dans le tooltip
StringGetPos, Position2, liste, %CR%%LF%, L, %Position%
Mot_Trouve:=SubStr(liste,Position+1,Position2-Position) ; lit le mot trouvé
Liste_Trouve:= Liste_Trouve . Mod(Index_ToolTip,10) . ". " . Mot_Trouve . "`n" ;Constitue la liste de propositions
Mot_Proposition%Index_Tooltip%:=Mot_Trouve ;tableau des mots trouvés
}
Else
{
Continue ; le mot trouvé est une partie de mot, il n'est pas pris en compte. on redémarre la boucle
}
}
Else
{
Break ; pas de mot trouvé on sort de la boucle
}
}
;Si aucun mot n'a été trouvé dans la liste réinitialise la boucle
IfEqual, Liste_Trouve,
{
Efface_Mot_Saisi=0
gosub, RAZ_Saisie
Continue
}
; Affiche la liste de propositions
StringTrimRight, Liste_Trouve, Liste_Trouve, 1
WinGetActiveTitle, ATitle
WinGetPos, , PosY, , SizeY, %ATitle%
MaxY := PosY + SizeY
ToolTipSizeY := (Index_ToolTip * 10)
ToolTipPosY := HCaretY()+24
if ((ToolTipSizeY + ToolTipPosY) > MaxY)
{
ToolTipPosY := (HCaretY() - 14 - ToolTipSizeY)
}
IfNotEqual, Mot_Saisi,,ToolTip, %Liste_Trouve%, HCaretX(), %ToolTipPosY%
}
;--------------------------------------------------------------------------------------------------------------
; RAZ des variables
;--------------------------------------------------------------------------------------------------------------
;
RAZ_Saisie:
Ifequal,Efface_Mot_Saisi,1
{
Mot_Saisi=
}
loop, 10
{
Mot_Proposition%A_Index%=
}
ToolTip ;efface les proposition
Caractere=
Liste_Trouve=
Envoi=
Efface_Mot_Saisi=1
OldCaretY=
Return
;----------------------------------------------------------------------------
;Regarde quelle est la fenêtre active
;----------------------------------------------------------------------------
Winchanged:
WinGetActiveTitle, ATitle
WinGet, A_id3, ID, %ATitle%
IfNotEqual, A_id, %A_id3%
{
ToolTip ,
}
else ; la fenêtre n'a pas changée les position du caret sont enregistrée et le tool tip est effacé si le caret à changé de place
{
IfInString, ATitle, %ETitle%
{
IfNotEqual, OldCaretY,
{
IfNotEqual, OldCaretY, HCaretY()
{
ToolTip,
}
}
}
}
Return
;--------------------------------------------------------------------------------------------------------------
; Affectation de la touche pressée pour la sélection
;--------------------------------------------------------------------------------------------------------------
$F1::
key=1
Gosub, Valide_envoi
Return
^$F1::
Send,{F1}
return
$F2::
key=2
Gosub, Valide_envoi
Return
^$F2::
Send,{F2}
return
$F3::
key=3
Gosub, Valide_envoi
Return
^$F3::
Send,{F3}
return
$F4::
key=4
Gosub, Valide_envoi
Return
^$F4::
Send,{F4}
return
$F5::
key=5
Gosub, Valide_envoi
Return
^$F5::
Send,{F5}
return
$F6::
key=6
Gosub, Valide_envoi
Return
^$F6::
Send,{F6}
return
$F7::
key=7
Gosub, Valide_envoi
Return
^$F7::
Send,{F7}
return
$F8::
key=8
Gosub, Valide_envoi
Return
^$F8::
Send,{F8}
return
$F9::
key=9
Gosub, Valide_envoi
Return
^$F9::
Send,{F9}
return
$F10::
key=10
Gosub, Valide_envoi
Return
^$F10::
Send,{F10}
return
$F11::
Gosub Ajoute_Mot
Return
^$F11::
Send,{F11}
return
$F12::
Gosub Supprime_Mot
return
^$F12::
Send,{F12}
return
^+A:: ; Mise à jour de wordlistbase.txt à partir d'un texte copié dans le clipboard
gosub MAJ_avec_Texte
return
$^+D:: ; Lance Dicoverb.exe
Run,%A_ScriptDir%\Applications associees\Dicoverb.exe
return
$^+E:: ; Lance EditePadLite.exe
Run,%A_ScriptDir%\Applications associees\\EditPadLite\EditPadLite.exe
Return
$^+R:: ; Réinitialise le fichier wordlistbase
Gosub Reinit_Wordlistebase
Return
;--------------------------------------------------------------------------------------------------------
; mets à jour la fréquence des mots saisis
;--------------------------------------------------------------------------------------------------------
Maj_Frequence:
FileRead, liste,%A_ScriptDir%\wordlistbase.txt
Position = 0
StringGetPos, Position, liste, %motenvoye%%CR%%LF% ;Cherche dans la liste la position du mot recherché avec le retour chariot pour faire la différence entre auto et automobile
if (Position>0)
{
cpos:=asc(SubStr(liste,Position,1)) ; teste le caractère pour faire la différence entre automobile et mobile si pas numérique alors continuer la recherche
if (cpos > 47 And cpos < 60)
{
Position-=5 ; défini la position de la fréquence du mot trouvé
Frequence:=SubStr(liste,Position,6)
Nouvelle_Frequence:=Frequence-1
if (Nouvelle_Frequence<100000) ;la valeur mini dans le fichier doit être de 100000 pour conserver la structure et ne pas avoir de problèmes avec la lecture de la fréquence
{
Nouvelle_Frequence=100000
}
ancien=%Frequence%%motenvoye%
nouveau=%Nouvelle_Frequence%%motenvoye%
StringReplace,liste, liste, %ancien%,%nouveau%
}
}
Sort, liste ; tri la liste en décroissant sur la fréquence
FileDelete, %A_ScriptDir%\Wordlistbase.txt ; recré le fichier des mots de base
FileAppend,%liste%, %A_ScriptDir%\wordlistbase.txt ; Sauvegarde Wordlist.base.txt
return
;-------------------------------------------------
; Ajoute un mot à worliste de base
;-------------------------------------------------
Ajoute_Mot:
motenvoye = %motsec% ; Recopie le derlier mot saisi
motsec = ; efface la sécu
; test la longuer du mot
if StrLen(motenvoye) < Longueur_Mini_Mot_Appris ; les mots appris doivent avoir une longueur mini
{
ToolTip, "%motenvoye%" est trop court !, A_CaretX, A_CaretY + 20
Sleep, 2000
motenvoye =
Return
}
; Cherche le mot dans la liste et positionne le flag
found = 0
Loop, Read, %A_ScriptDir%\wordlistBase.txt ; vérifie que le mot existe
{
If motenvoye = %A_LoopReadLine%
found = 1
}
; Ajoute le mot à la fin de la liste si pas trouvé
If found = 0 ; si le mot n'existe pas alors il est ajouté à la fin de la liste
{
Longueur:=StrLen(motenvoye)
loop, %Longueur% ;test chaque caractere du mot saisi
{
StringMid,Caractere, motenvoye,%A_Index%,1
asccar:=asc(Caractere)
if (((asccar>96 and asccar<123) or(asccar=156) or (asccar=224)or (asccar=225)or (asccar>230 and asccar<236) or (asccar=238) or (asccar=239)or (asccar=244)or (asccar=246)or (asccar=249)or (asccar=251)or (asccar=252))and OK<>2)
{
OK=1 ; le caractére est alphabétique
}
Else
{
OK=2 ; le caractére est numérique
}
}
If(OK=2) ; ne fait pas la recherche si il y a un caractére numérique mais conserve Mot_Saisi pour pouvoir le corriger avec Backspace
{
ToolTip Le mot contient des caractères non acceptables ! ;réinitialise la liste de propositions
Sleep 2000 ;Reprends la boucle au début
}
else ;ajoute le mot à wordlistebase.txt
{
StringLower,motenvoye,motenvoye ; force le mot en minuscule
frequence:=Frequence_Initiale-1
FileAppend, %Frequence_Initiale%%motenvoye%%CR%%LF%, %A_ScriptDir%\wordlistbase.txt ; la fréquence initiale est de 1 (999999-999998)
ToolTip, "%motenvoye%" a été ajouté !, A_CaretX, A_CaretY + 20
sleep 1000
IfNotEqual, EndKey, Endkey:Space
{
SendInput, {space} ; ajoute un espace après le mot saisi si le mot a été envoyé . Pour un mot nouveau, l'espace est envoyé après son ajout dans la liste.
Gosub RAZ_Saisie
}
}
}
; Dit que le mot existe déja
Else
{
ToolTip, "%motenvoye%" existe déja !, A_CaretX, A_CaretY + 20 ; Si le mot existe l'affiche
Sleep, 1000
motenvoye =
}
Return
;--------------------------------------------------------------------------------------------------------------
; Suprime de la liste le mot mis dans le clipboard
;--------------------------------------------------------------------------------------------------------------
Supprime_Mot:
motenvoye:=clipboard ; Recopie le derlier mot saisi
StringLower,motenvoye,motenvoye
FileRead, liste,%A_ScriptDir%\wordlistbase.txt
Position = 0
loop
{
StringGetPos, Position, liste, %motenvoye%%CR%%LF%,L%A_Index% ;Cherche dans la liste la position du mot recherché avec le retour chariot pour faire la différence entre auto et automobile
if (Position>0)
{
cpos:=asc(SubStr(liste,Position,1)) ; teste le caractère pour faire la différence entre automobile et mobile si pas numérique alors continuer la recherche
if (cpos > 47 And cpos < 60)
{
Position-=7 ; défini la position de la fréquence du mot trouvé 7 caractères à gauche pour prendre en compte le CR LF
Frequence:=SubStr(liste,Position,8)
;MsgBox attention
ancien=%Frequence%%motenvoye%
nouveau=
StringReplace,liste, liste, %ancien%,%nouveau%
ToolTip, "%motenvoye%" a été supprimé !, A_CaretX, A_CaretY + 20
Sleep, 1000
Sort, liste
FileDelete, %A_ScriptDir%\Wordlistbase.txt ; recré le fichier des mots de base
FileAppend,%liste%, %A_ScriptDir%\wordlistbase.txt
break
}
}
Else
{
Msgbox Ce mot n'est pas dans la liste !
Break
}
}
return
;--------------------------------------------------------------------------------------------------------------
;Saisie la position du pointeur si clique gauche
;--------------------------------------------------------------------------------------------------------------
~LButton::
MouseGetPos, MouseX, MouseY
Return
;--------------------------------------------------------------------------------------------------------------
; Envoit a l'application le mot sélectionné et le sauvegarde dans motenvoye pour mise a jour de la fréquence
;--------------------------------------------------------------------------------------------------------------
Valide_envoi:
;Vérifie que la fenêtre active est la même sinon remets la sasie à zéro
WinGetActiveTitle, ATitle
WinGet, A_id2, ID, %ATitle%
IfNotEqual, A_id, %A_id2%
{
if key =10
key = 0
SendInput,%Key%
Gosub,Raz_Saisie
Return
}
;Vérifie que le caret est à la même position sinon remets la sasie à zéro
IfNotEqual, OldCaretY, HCaretY()
{
if key =10
key = 0
SendInput,%Key%
Gosub,Raz_Saisie
Return
}
;Vérifie que la saisie en cours n'est pas vide
if Mot_Saisi= ; Le mot saisi ne doit pas être vide !1
{
if key =10
key = 0
SendInput,%Key%
Setenv, Mot_Saisi, %Key%
Efface_Mot_Saisi=0
Gosub,Raz_Saisie
Return
}
;Vérifie que l'on envoie pas un mot vide
ifequal, Mot_Proposition%key%, ;Vérifie que le mot pour la proposition choisie n'est pas vide
{
if key =10
key = 0
SendInput,%Key%
Setenv, Mot_Saisi, %Mot_Saisi%%Key%
Efface_Mot_Saisi=0
Gosub,Raz_Saisie
Return
}
; Envoi le mot sélectionné à la fenêtre active.
if (key =0)
key = 10
StringLen, len, Mot_Saisi
Envoi:= SubStr(Mot_Proposition%key%, len+1)
Clipboard = %Envoi%
SendInput,^v
SendInput, {space} ;ajoute un espace
motenvoye=%motsec%%Envoi% ;sauvegarde le mot envoyé première partie saisie = motsec fin envoyée dans le clipboard
Gosub RAZ_Saisie
; vers maj fréquence
StringLower,motenvoye,motenvoye ;force le mot en minuscule
Gosub, Maj_Frequence
Return
;-------------------------------------------------------------------------------------------
; mise à jour de la liste de base wordlistbase à partir d'un texte copié dans le clipboard
;-------------------------------------------------------------------------------------------
MAJ_avec_Texte:
texte:=Clipboard
lgtexte:=StrLen(texte)
if (lgtexte<Longueur_Mini_Mot_Appris)
{
msgbox Le presse papier ne contient pas un mot de longueur suffisante !
return
}
;msgbox %texte%
StringLower,texte,texte ;mets tout en minuscule
;enlève de liste les carcatères non souhaités .,;:/§?%*$£¤=+}°)]
StringReplace,texte, texte, %CR%%LF%,%espace%%CR%%LF%,All ; ajoute un espace devant les retour chariot
StringReplace,texte, texte, %CR%%LF%,,All ; supprime tous les retour chariot en laissant les espaces ajoutés
StringReplace,texte, texte, %apostrophe%,%espace%,All ; supprime toutes les apostrophes
gosub Supprime_Cara_Non_Alpha
;msgbox %texte%
FileRead, liste,%A_ScriptDir%\wordlistbase.txt ;lit la liste de mots de base pour pouvoir modifier la fréquence ou ajouter un mot
FileDelete, %A_ScriptDir%\wordtemp.txt ; efface le fihier wordtemp.txt qui contient les mots à traiter
FileAppend, %texte%, %A_ScriptDir%\wordtemp.txt ;Sauvegarde les mot à ajouter
Loop, read, %A_ScriptDir%\wordtemp.txt ;lit chacun des mots
{
lgmot:=strlen(A_Loopreadline)
if (lgmot>Longueur_Mini_Mot_Appris-1) ; Les ajouts et la mise à jour des fréquences ne se font qui si le mot est de longueur supérieure à learnword
{
motenvoye:=A_LoopReadLine
; mets à jour la fréquence des mots saisis
Position = 0
Loop
{
StringGetPos, Position, liste, %motenvoye%%CR%%LF%, L%A_Index% ;Cherche dans la liste la position du mot recherché avec le retour chariot pour faire la différence entre auto et automobile
if (Position>0)
{
cpos:=asc(SubStr(liste,Position,1)) ; teste le caractère pour faire la différence entre automobile et mobile si pas numérique alors continuer la recherche
if (cpos > 47 And cpos < 60)
{
Position-=5 ; défini la position de la fréquence du mot trouvé
Frequence:=SubStr(liste,Position,6)
Nouvelle_Frequence:=Frequence-1
if (Nouvelle_Frequence<100000)
{
Nouvelle_Frequence=100000
}
ancien=%Frequence%%motenvoye%
nouveau=%Nouvelle_Frequence%%motenvoye%
StringReplace,liste, liste, %ancien%,%nouveau% ;remplace le mot avec sa nouvelle fréquence
Break
}
}
Else
{
frequence:=Frequence_Initiale
liste=%liste%%frequence%%motenvoye%%CR%%LF% ; ajoute le mot nouveau avec une fréquence de 1
Break
}
}
}
}
Sort, liste ;tri la liste en décroissant sur la fréquence
FileDelete, %A_ScriptDir%\Wordlistbase.txt ; recré le fichier des mots de base
FileAppend,%liste%, %A_ScriptDir%\wordlistbase.txt
FileRead, MAJ_Realise, %A_ScriptDir%\wordtemp.txt
Msgbox Les mots suivants ont été mis à jour : %Maj_Realise%
FileDelete, %A_ScriptDir%\wordtemp.txt ; efface le fihier wordtemp.txt qui contient les mots à traiter
return
;--------------------------------------------------------------------------------------------------------------
; Suprime les caractères non alphabétique
;--------------------------------------------------------------------------------------------------------------
Supprime_Cara_Non_Alpha:
texte1=
; remplace les caractères non alphabétique par des espaces
loop, %lgtexte%
{
StringMid,caractere, texte,%A_Index%,1
asccar:=asc(caractere)
if ((asccar>96 and asccar<123) or(asccar=156) or (asccar=224)or (asccar=225)or (asccar>230 and asccar<236) or (asccar=238)or(asccar=239)or (asccar=244)or (asccar=246)or (asccar=249)or (asccar=251)or (asccar=252)) ;ne garde que les caractères alphabétique
{
;on garde le caractère ;remplace par espace les non alaphabétique
}
Else
{
caractere:=espace
}
texte1 = %texte1%%caractere% ; cumul les lettres et espace
}
; supprime les espaces en doubles
texte=
lgtexte1:=StrLen(texte1)
loop, %lgtexte1%
{
poscar:=A_Index
poscarG:=A_index-1
StringMid,caractere, texte1,%poscar%,1
StringMid,caractereG, texte1,%poscarG%,1
asccar:=asc(caractere)
asccarG:=asc(caractereG)
if (asccar=32 And asccarG=32)
{
caractere=
}
texte = %texte%%caractere%
}
; Transforme les espace en retour chariot et line feed
StringReplace,texte, texte, %espace%,%CR%%LF%,All
return
;----------------------------------------------------------------------------
; Position du caret
;----------------------------------------------------------------------------
HCaretX()
{
global
WinGetPos, HelperX,,,, ahk_id %Fenetre_Aide%
WinGetPos, X,,,, A
if HelperX !=
{
if X !=
{
return HelperX - X
}
}
if A_CaretX < 14
{
if MouseX != 0
{
return MouseX
}
}
return A_CaretX
}
HCaretY()
{
global
WinGetPos,,HelperY,,, ahk_id %Fenetre_Aide%
WinGetPos,, Y,,, A
if HelperY !=
{
if Y !=
{
return HelperY - Y
}
}
if A_CaretX < 14
{
if MouseY != 0
{
return MouseY + 20
}
}
return A_CaretY
}
;----------------------------------------------------------------------------------------
;Fenetre d'aide
;----------------------------------------------------------------------------------------
^,:: ; ctrl et , pour faire apparaître la fenêtre helper
Gui, +Toolwindow
Gui, Add, Text,,Touches de fonction relatives au texte
Gui, Add, Text,,F1 a F10 Pour autocompléter un des mots suggérés
Gui, Add, Text,,F11 Pour ajouter à la liste le dernier mot saisi au clavier
Gui, Add, Text,,F12 Pour effacer un mot que l'on aura préalablement copié dans le presse papier
Gui, Add, Text,,Ctrl F1 a Ctrl F12 pour obtenir le comportement normal des touches de fonction
Gui, Add, Text,,Ctrl Shift A Pour ajouter à la liste l'ensemble des mots d'un texte préalablement copié dans le presse papier.
Gui, Add, Text,, 1 - Seuls les caractères alphabétiques sont conservés
Gui, Add, Text,, 2 - Seuls les mots de longueur supérieure à 4 caractères sont pris en compte.
Gui, Add, Text,,Ctrl Shift R Pour réinitialiser la liste de base avec quelques 1400 mots les plus fréquents de la langue Française : tous les ajouts et les mises à jour des fréquences d'utilisaton des mots seront perdues !
Gui, Add, Text,,
Gui, Add, Text,,Remarques :
Gui, Add, Text,, La fréquence d'utilisation d'un mot est mise à jour chaque fois qu'il est envoyé au texte avec les touche F1 à F10
Gui, Add, Text,, Lorsque la liste de base des mots utilisés et mise à jour à partir d'un texte, les mots inconnus sont ajoutés à la liste.
Gui, Add, Text,, La fréquence d'utilisation de chacun des mots est mise à jour en regard de leur occurence dans le texte.
Gui, Add, Text,,
Gui, Add, Text,, Touches de lancement d'application
Gui, Add, Text,,Si l'application Dicoverb (conjugueur) est placée dans le répertoire "Applications associees" du répertoire contenant le script elle est lancée avec Ctrl Shift D
Gui, Add, Text,,Si l'application EditPadLite (Texteur) est placée dans le répertoire "Applications associees\EditPadLite" du répertoire contenant le script elle est lancée avec Ctrl Shift E
Gui, Add, Text,, Touches relatives aux fenêtres
Gui, Add, Text,,Win et Pavé numérique 4 Déplace et formate la fenêtre active 1/2 écran à gauche
Gui, Add, Text,,Win et Pavé numérique 6 Déplace et formate la fenêtre active 1/2 écran à droite
Gui, Add, Text,,Win et P5avé numérique 8 Déplace et formate la fenêtre active 1/2 écran en haut
Gui, Add, Text,,Win et Pavé numérique 2 Déplace et formate la fenêtre active 1/2 écran en bas
Gui, Add, Text,,Win et Pavé numérique 7 Déplace et formate la fenêtre active 1/4 écran en haut à gauche
Gui, Add, Text,,Win et Pavé numérique 9 Déplace et formate la fenêtre active 1/4 écran en haut à droite
Gui, Add, Text,,Win et Pavé numérique 3 Déplace et formate la fenêtre active 1/4 écran en bas à droite
Gui, Add, Text,,Win et Pavé numérique 1 Déplace et formate la fenêtre active 1/4 écran en bas à gauche
Gui, Add, Text,,Win et Pavé numérique 5 Déplace la fenêtre active au centre en conservant sa taille
Gui, Add, Text,,Win et Entrée Maximalise la fenêtre active
Gui, Add, Text,,Alt Gauche et clique droit appel Alt Tab aec rotation à droite
Gui, Add, Text,,Alt Gauche et clique gauche appel Alt Tab aec rotation à gauche
Gui, Add, Text,,Win clic gauche envoie un double clic.
Gui, Add, Text,,Ctrl Shift CapsLock Quit le script AutoHotKey
Gui, Show
WinGet, Helper_id, ID,,Tooltip Salut ;appears here
WinSet, AlwaysOnTop, On, ahk_id %Fenetre_Aide%
return
;--------------------------------------------------------------------------------------------------------------
; commande de positionnement des fenêtre
;--------------------------------------------------------------------------------------------------------------
#Numpad0:: ;minimise la fenetre active
WinMinimize, A
return
#Numpad1:: ;1/4 écran bas gauche
WinMove,A,,0,Height/2-TrayHeight/2,Width/2,Height/2-TrayHeight/2
Return
#Numpad2:: ;1/2 écran bas
WinMove,A,,0,Height/2-TrayHeight/2,Width,Height/2-TrayHeight/2
Return
#Numpad3:: ;1/4 écran bas droite
WinMove,A,,Width/2,Height/2-TrayHeight/2,Width/2,Height/2-TrayHeight/2
Return
#Numpad4:: ;1/2 écran droite
WinMove,A,,0,0,Width/2,Height-TrayHeight
Return
#Numpad5:: ;Taille fenêtre inchangée, fenêtre mise au centre de l'écran
WinGetActiveStats, Title, W, H, X, Y
WinMove , A,,(Width-W)/2,(Height-H-TrayHeight)/2,W,H
Return
#Numpad6:: ;1/2 écran gauche
WinMove,A,,Width/2,0,Width/2,Height-TrayHeight
Return
#Numpad7:: ;1/4 écran haut gauche
WinMove,A,,0,0,Width/2,Height/2-TrayHeight/2
Return
#Numpad8:: ;1/2 écran haut
WinMove,A,,0,0,Width,Height/2-TrayHeight/2 ; put the Active window to top
Return
#Numpad9:: ;1/4 écran haut droite
WinMove,A,,Width/2,0,Width/2,Height/2-TrayHeight/2
Return
#NumpadEnter:: ;fenêtre plein écran
WinMove,A,,0,0,Width,Height-TrayHeight
Return
; alt tab avec atl gauche et bouton
LAlt & RButton::AltTab
LAlt & LButton::ShiftAltTab
; Arrêt du script avec ctrl shift capslock
$^+CapsLock::
ExitApp
return
; double click avec win et lbutton
#LButton::
Click 2
Return
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
;Recré le fichier wordlistbase.txt avec une liste ordonnée selon la fréquence 'standard' d'utilisation des mots
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
Reinit_Wordlistebase:
msgbox Attention
FileDelete, %A_ScriptDir%\wordlistbase.txt
Premier_Enregistrement=100000aaaaaaaaaaaaaa
Premier_Enregistrement=%Premier_Enregistrement%%CR%%LF%
FileAppend, %Premier_Enregistrement%, %A_ScriptDir%\wordlistbase.txt ; cré le premier enregistrement en sommet de liste pour éviter les problème d'insertion de CRLF lors de la suppression du premier mot
gosub Mot_Base1
clipboard:=Liste_mots_base1
gosub MAJ_avec_Texte
gosub Mot_Base2
clipboard:=Liste_mots_base2
gosub MAJ_avec_Texte
tooltip, Le fichier de base a été réinitialisé !
Sleep 5000
return
;-------------------------------------------------------------------------------------------------------------------------------------------------------------
;remplace tous les CR LF du fichier wordlistbase ainsi que les fréquence pour constituer une chaîne a insérer dans le script pour reconstituer la liste de base.
;--------------------------------------------------------------------------------------------------------------------------------------------------------------
Prepa_Creation_Listbase:
CR:=Chr(13) ; retour chariot
LF:=chr(10) ; line feed
espace:=chr(32)
FileRead, texte, %A_ScriptDir%\WordlistbaseTexte.txt
sort, texte
a=0
loop, 10
{
StringReplace,texte, texte, %a%, ,All
a+=1
}
StringReplace,texte, texte, %CR%%LF%,%espace%%CR%%LF%,All ; ajoute un espace devant les retour chariot
StringReplace,texte, texte, %CR%%LF%,,All
FileDelete, %A_ScriptDir%\wordlisttemp.txt
FileAppend, %texte%, %A_ScriptDir%\wordlisttemp.txt ; recopier la liste crée dans worlistetemp.txt et la recolier ci dessous
FileDelete, %A_ScriptDir%\wordlisttemp.txt
return
;------------------------------------------------------------------------------------
;Mots de base pour le fichier wordlistbase.txt
;-------------------------------------------------------------------------------------
Mot_Base1:
liste_mots_base1 = mesures système mesure étude pièces opérateurs variabilité processus erreur moyen pièce opérateur fabrication justesse valeur cette répétabilité variation référence contrôle chaque résultats entre calculer étendue moyenne nombre carte valeurs exemple caractéristique analyser échantillon analyse dispersion données utilisée interaction méthode alors graphique utilisation tolérance acceptation limites reproductibilité vérifier comme acceptable peuvent variance déterminer produits échantillons calcul calculs durée méthodes stabilité accord limite moyennes toutes celle doivent étant présente totale supérieure écart égale ainsi chacune connue linéarité moyens section vérification approche attendu autres calculée elles réalisées systèmes tracer attribut cours décision fonction linéaire lorsqu lorsque produit prélevés risque risquer statistique table tableau utiliser œuvre annexe application caractéristiques causes client ensemble manière performance somme utilisant ajout chacun conduite identifier important procédé range réalisée équipement anova conditions erreurs hypothèse mauvaise mesurée mesurées partir plusieurs probabilité reporter réaliser standard taille utilisées évaluer carrés conservation critère différente disponible dynamiques décisions excède postes première sources statistiquement appareil aucune autre calculées capabilité comparer confiance contrôles couvrent définir essai homogénéité ligne lignes niveau numérique nécessaire permet procédures prélever présentées reproductibles réalisés situe suivantes utilisé utilisés variations études évaluation assurer calculé chapitres conduire différents environnement graphiques généralement informations inférieure instrument interactions liberté mesurage milieu objectif permettant possible probabilités précédemment situations zones absence ajustement anomalie anomalies assemblage attendue aucun basée cartes chapitre cohérence concernant condition conformes courbes différence différentes divisée facteurs faire forme fréquence général histogramme inacceptable indices instabilités intervalle leurs mesurer montre montrer obtenir rapport regarder requis requises réalisé réponse résolution supérieur théorique tolérances total éliminer étendues arithmétique certaines classes conforme consiste courbe dimension disposer défauts définition effet efficacité estimations exemples faite figure finale hasard instruments kappa observée obtenues paragraphe plage pourcentage pouvant production renseigner réduire significative significatives source stabilisées stable suffisante trois échelle éventuelles accepter affecter aspect aussi cependant changement changer coefficient colonne comparaison comprendre compte considéré degrés destructif destructifs dispersions dispose distance documenter droite détecter estimation estimer fixation fournisseur grand groupe importantes individuelles issues laquelle mauvais minimum modification modifications moins montages nulle négative organisation paire paramètres poste pratiques prendre prélevées présentée règles réalise régression répartis résultat selon seront simples situation spécifique statistiques suffisant synthèse trier étapes évidence acceptables acceptée activité ailleurs amélioration améliorée applicables applications approches approximation associée attention augmenter avant biais bruit calibrage celles change classe collectées combinaison commentaires comparés compréhension connaissance constituera conséquence contraire correspondant corriger cycle dessus devant devrait dimensions donné dégradation déterminant efforts excès existe expériences facteur faites final garde groupes guide henry importante indiquer lecture lesquels maximum notées obtenue paires permettre pilotage position pratique problèmes procédure proportion présentent puisque quatre quatrième quelle recommandées refuser regard représenter répartition signe situées soient suivante suivants suppose tracée traiter types utilise variable variables vérifiée écarts également énoncé établir étape étudiés aberrants acceptabilité accepté accords actions adapté additionnelle alpha alternative aléatoire aléatoirement aléatoires améliorer anormale appel apportées appropriées après assure automatiques avoir capable cause choisir choix chose cible circularité clairement commence comparée connues considérés consécutives contrôlées corréler couvrir critères dernière destructives différences différent directement directrices disponibles distribution documentées donne donnée défaut dépend désaccord détruire effets employées ensuite entreprise environ erronées estimée exception externe extrémités fabricant faisant familiarisé focaliser fondée fourni fournie fournissent fournit gestion grande générales homogène homogènes identifiés importance impossibilité inadaptée inadéquate incertitude indication indique indépendance instructions largeur manifeste manipuler matière mesuré modifiant modifiée moitié montrant montrent multiplicateur nombreux normales notée nouveau négligeable objectifs observation observations observe occupe opérations origine particulière particulièrement pente personnel perte physiquement points portée poursuite premiers prestataire prises problème programme proportions proposées précision précédentes préférence présenter qualifié qualité quantifier quelque question rapide recalculée reconduire relation remplir reportées représente retouche revient règle réelles références répéter répétées résidu résidus satisfaisants savoir scénario sensibilité services seuil seuils seule seulement seules signal souhaitable souvent spécifier spécifiques spécifiés square standards statiques suppression symétrie systématique sélection sélectionner sélectionnées séries techniques temps tendances terme travail traçabilité trouver trouvé validé version édition élément établit éviter évoluent aberrantes acceptations achever action actuelle agissent aider ajouter ajoutée ambiance amélioré analyses analytique appréciation attributs autour avance bilatérales bonnes calculant catégories certains choisies claire collecte combien comparant complètement composantes comprise conclure conclusion conclut conicité connaissances considérées constatée constitue couple cross davantage degré dehors demandé dernier destructive deuxième devient diagonales difficile document décelée déclarer décomposée définie dégradations déterminée efficacités emploie enregistrées entièrement entra expertise faible façon feuille figures fournies fractionné gauche globalement graphe historiquement identification illustrent impact impacte implique inclura indiqué indépendantes influents information inférieur inférieures interprétation intervenir introduction intérieur journalière journée jugement laboratoires lesquelles lieux lumière maintenance maintenant manquer mauvaises mesurabilité mettant mettre mises modèle montré multiples mémorisation métrologie nature normale notre nouvelles nécessite nécessitent nécessité observer oeuvre ordre partie pendant petit place plupart posant positionner positionnés possibilité possibles poursuivie poursuivre pouvoir premier premières prenant prend prise propriétés précédents précéder prélevant prélevée prélèvement préparation présence puisqu période quand ramener recommandé refaire refus refusée rejeter rejetée relevé remarques remplie reportés reproductible représentant représentatifs reste revue réalisation réparation réparer réponses répétition répétitions répétée sachant satisfaisant satisfaisante seconde sensible serait seuls sigma signifie signifier similaire similaires simple situant situent sommes souhaitée spécification statuer suffisamment surtout séparer sérieux tableaux tables tabulation température tester titre trait travaux troisième témoin unique uniquement usage utile utilité variabilités variances vrais équipements équivalente établi abandonner abattre abord absolu absolument accent accepte acceptent acceptées acceptés accompagner accomplir accorder accrocher accuser acheter activités adaptés additionnels adjacentes admettre adresser affaire affecte affichage affirmer agent agissant agiter agrément aimer ajustée algorithme aller allumer alternatives amies amour amplitude amuser analysée ancien anglais angoisse animal animer annexes annoncer année apercevoir apparaissent appareiller apparemment apparence appartement appartements appartenir appartiennent appeler appelle appelée applicable apporter apprendre approcher approprié appropriée approuvée appuyer aptitude arbre argent armer armée arracher arriver arrivée arrière arrondi arrêter article aspects asseoir assez assignable assignables assigné assister associé associées associés attacher attaquer atteindre attendre attentes attirer attitude attribuées auprès auquel aussitôt autant auteur automatique autorité autrefois autrement avait avancer avantages avenir aventure avouer ayant baisser bande barbe bataille bayes beaucoup beauté beaux besoin biaisée bientôt billet blanc blond boire bonheur bonjour bonne bouche branche briller briser brusquement brûler bureau cabinet cacher cagoule calcule calibration calibrer calme calmer camarade campagne caractère caresser carré casser causer cellules celui centre centrée cercle certain certainement certes cerveau cesse cesser chair chaise chaleur chambre champ chance chant chanter charge charger chasse chasser chaud chemin chemise chercher cheval cheveu chien chiffre choisie chute cinquante circonstance clair clients codés coeur cohésion collecter colline colon colonnes colère combat commander commencement commencer comment commun communs compagnie compagnon comparées complet complexité complémentaires compléments composante composants composer comprends compris comptabilise compter concentricité concepteur concepts concevant concluons condamner confiances confier configurations confirme confirment confondre conformité connu conscience conseil consentir considèrent considérant considération considérer considérée consignées consisterait constante constitué construire consulter contenir content contenter contingence continu continuer contre control contrôlant contrôler convenir conversation corde corps correcte correctes correction correspond corrigées corrélation couche coucher couler couleur couper courage courant courir course court couvent couvre coûter craindre crainte creuser crier crise critique croire croiser croix cruel créer cuisine curieux curiosité céder danger dangereux danser debout demain demande demandent demander demandée demeurer depuis derrière descendre dessiner devenir deviner devoir diagonale diffèrent digne dimanche direction diriger dirons discours discrimination discrètes discussion discuter discuté distinctes distinguer distribuent distribuée divers divisé divisées docteur doigt dominer dormir double doucement douceur douleur doute douter douze drame droit drôle durant durer dynamique début débuts déchirer décider décidera déclare décomposer découlent découvrir décrire décrites décrivent décroissant déduire défendre défini définissant dégager départ dépasser dépendante dépendent déposer désavantage désert désespoir désigner désignée désir désirer désormais détacher détail détection détruisant détruite développé effacer efficace effort embrasser emmener empire employer emporter empêcher encadrant encore endormir endroit enfance enfant enfermer enfin enfoncer engager enlever ennemi enregistrer enregistré enregistrés entendre entier entière entourer entrepris entrer entretenir entrée envelopper envie envoyer ergonomie erroné erronée escalier espace espacées esprit espèce espérer essais essayer essentiel essuyer estime estimé examiner examinées exigences exigent exiger existante existence exister expert expliquer exploitables exposer expression exprimer expérience extraordinaire exécuter fabrications fabriqués facile facilement faciliter faits falloir famille fatigue fatiguer faute fauteuil faveur façons femme ferme fiabilité fidèle figurer fille finalement finies finir fixer fixées flamme fleur folie fonder force forcer formation forment former formulaire formules forte fortune forêt foule fournir fournis fraction frais franc franchir français frapper froid front fruit frère fuites fumer fumée fusil futures gagner garantir garder garçon genou genre geste glace glisser gloire goutte gouvernement grain grandir graphiquement grave grises guerre guère génère générale généré générée habilitation habilité habiller habitant habiter habitude habituel habituellement haine haute hauteur herbe heure heureux histogrammes histoire historique hiver homme honneur honte horizon humain humaine humains humide hypothèses hésiter hôtel identique identiques identité idéale ignorent ignorer ignorées illustre image imaginer immense immobile importants importe importer imposer impossible impression inacceptables incluant inclut incohérence inconnu incorrect indice indiquent indiqués individuellement induite indépendant indépendants influence informatiques ingénieurs inquiéter inquiétude inspirer installer instant instinct insuffisante intelligence intention inter interagissent interdépendance interminable interprète interprétable interpréter interprétée interroger interrompre intervalles intervention intrinsèque introduise introduit intégrant intégrés intéressantes intéresse intéresser intérêt inutile inventer inviter isoler italien jamais jambe jardin jaune jeter jeune jeunesse joindre joint jouer journal juger jusque juste justice large larme lendemain lentement lequel lettre libre livre livrer localisation longtemps lourd lueur lutte lutter lèvre léger machine madame magnifique maintenir maison majorité malade maladie malgré malheur manger manier manipulées manque manuel marchand marche marcher marché mariage marier marquer masse matin matrices meilleur meilleure membre menacer mener mensonge mentir message mieux militaire million mince ministre minute miroir misent miser modalité modifiées moindre moment monde monsieur montage montagne monter morceau moteur moteurs mourir mouvement musique médecin médiane mémoire mériter métier mêler mêmes nation naturel naturellement nerveux niveaux noire nommer normalité notamment nourrir nouvelle noyées nuage numéros numéroter nécessaires objet obliger observées obtention obtenu obtient obéir obéissant obéissent occasion occultée occuper odeur officier offrir oiseau oncle optimums opération ordinaire ordonné ordonnée ordonnées oreille oubliant oublier outil outils ouvert ouvrage pages palais panne papier paquet parallèles parcourir pareil parent parfait parfaitement parfois parler parmi parole partage partager parti particulier particulières partout parts parvenir passage passer passion passé patron paupière pauvre payer paysage paysan peine pencher pendre pense penser pensée perdre perdu permanent permettent permettra personnage personne pertinentes peser peuple phrase pierre pitié placer plages plaindre plaine plaire plaisir planche plante planéité plastique plein pleurer plonger pluie plutôt poche poids point pointe poitrine police politique porte portier posages posent positionné positionnées positive posséder pourcentages pourquoi pourra poursuivant poursuivante poursuivantes poursuivants poursuivit pourtant pousser poussière poète poésie presque presser preuve prier prince principe printemps prison prière prochain proche producteur productions produire professeur profiter profond profondément projet promener promettre prononcer propos proposer propre propriété protéger protégés prouver province proximité préalable précieux précipiter précis précédent précédente préférable préférer préférée prélevé préoccuper préparer présent présentant présents présenté présentés préserver président prétendre prévenir prévoir prévue prévues prêter public puissance puissant puissent pénétrer quantifiable quantification quarante quart quartier quelles quelques questions queue quinze quitter racine raconter raison raisons ramasser ramenée rapidement rappel rappeler rappelons rapporter rassurer ratio rationnelle rayon recevoir recherchant recherche recommandée recommencer reconsidéré recueillir reculer redéfinir refusent refusé refusés regardent regretter rejet rejoindre relever relevées religion remarque remarquer remercier remettre remise remonter remplacer remplies rencontre rencontrer rendant renoncer renseignés rentrer renverser repas reposer repousser reprendre représentatif représentative
return
mot_Base2:
liste_mots_base2 = respectée respirer responsable ressembler rester restrictif retirer retomber retour retourner retranchant retrouver revenir revoir riche rideau rigide roche roman rosace rouge rouler route ruine réalisable réalisant réalité récapitulant réclamer réduite réduites réflexion réfléchir répandre réparties répartir réplication répondre répétera réserver réside résistance résister résoudre résumer réunir réussir réveiller révisées révolution révéler rêver sable saint saisie saisir saison salle saluer salut santé satisfaire satisfaite sauter sauvage sauver scène second secours secret secrétaire seigneur semaine semaines semblable sentier sentiment seraient serrer service servir significativement signifient silence silencieux simplement simultanées simultanément situer située situés siècle siège social société soirée soldat soleil solitude sombre sommeil sommet songer sonner sorte sortir soudain souffler souffrance souffrir souhaite souhaiter soulever soumettre soumise soumises sourd sourire soutenir souvenir spectacle spéciales stands subir substitution succès sueur suffire suffit suite suivant suivre sujet sujette supplémentaires supporter supposer supposons surprendre surveiller séparées série tache tantôt tapis technique tellement telles temporaire tempête terminer terrain terre terreur terrible tests théorie théoriques théorème tickets toile tombe totalité toucher toujours toute trace tracteur tracées tracés train traitements tranquille transformer transférer travaillant travailler travailleur travailleurs travers traverse traverser trembler trente trials tripler triste tromper troubler trouvant trouve trouvent trouvera trésor uniformité unilatérales unitaire unité utiles utilisables utilisent utiliserons vague vaincre valide valoir value varie varier vaste veille vendre ventre verre victime vieil vieillard vieux village ville vingt violence violent visage visant visible visibles vision visite vivant vivre voici voile voilà voisin voiture voler volonté votre vouloir voyage voyager vraie vraies vraiment vérifiant vérifie vérifient véritable vérité vêtement vêtir zozoter écarter échapper éclairer éclat éclater école écouter écraser égales élevé éloigner éléments émotion énergie énorme énumératives épais épaule époque éprouver équation équidistante équilibre équipes équivaut établies établissant étage était étaler éteindre éternel étoile étonner étouffer étrange étranger étranges étroit étudier étudié évalué évaluées événement maîtrisé maîtriser maîtrise maîtrisée
Return
; pour l'ajout automatique de mot : ouvrir une fenêtre pour copier le texte, dir la longueur des mots à apprendre
;
Have a nice day