Usercontrol richtextbox correcteur d'orthographe

Description

Ce UserControl permet de faire des propositions de mots à l'utilisateur au fur et à mesure de la saisie.
C'est surtout à titre de tuto que cela pourra être utile, parce qu'il y a quand même quelques inconvénients :
- La base de données (DB) qui stocke les mots fait ... 21 Mo - Pas facile à transporter !
- Pour tenter de le poster ici, je joins un fichier texte avec plus de 330.000 mots. Le fichier fait 3.9Mo.
Une première application vous permettra de créer la DB chez vous (15 minutes)
- Il suffira de copier la DB générée sur le répertoire où se trouve l'application principale de démo
- Le composant est lent, ça se comprend un peu.

Les paramètres propres au UserControl commencent tous par "DB_" :
DB_AvecCorrecteur : Permet d'inhiber la fonction
DB_IgnorerMotAvecChiffres : Ne fera pas de recherche si le mot en cours comporte des chiffres
DB_IgnorerMotEnMajuscule : Ne fera pas de recherche si le mot n'est composé que de majuscules
DB_NbrLettresMini : Nombre de lettres saisies à partir duquel on commence à interroger la DB
DB_NbrMotsMaxi : Nombre de mots maxi pour afficher la liste
DB_TimeOut_mSec : Durée maximum du questionnement de la DB
Avec la méthode DB_AjouterMot, vous pourrez rajouter des mots dans la DB si besoin.
Toutes les autres propriétés, méthodes et évènements du UserControl sont ceux d'un RichTextBox standard.

Les recherches de mots compatibles avec les lettres saisies sont de plusieurs types :
- Mots commençant par les lettres connues
- Mots dont 2 lettres sont inversées (dyslexie) (regSItre -> regIStre)
- Mots qui ont un caractère en trop (sOOurce -> sOurce)
- Mots dont on a oublié d'entrer une des lettres (apeler -> apPeler)
- Mots dont une des lettres est fausse (apOeler -> apPeler)
- Mots qui ressemblent (méthode SoundEx)

De plus, la liste proposée est placée dans une forme à part, pas dans une ListBox implantée sur le RichTextBox. De cette manière, la liste peut déborder de la forme de l'application. Pas facile à mettre au point, mais c'est beaucoup plus mieux qu'une liste dont on ne verrait pas les lignes parce qu'on écrit en bas du RTB.

Conclusion :


J'ai pris la peine de bien commenter la source.
Elle n'a pas de réelle utilité, mais les méthodes utilisées sont intéressantes.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.