C# .NET - Is there any spell check libray in dotnet?

Asked By Eswaran Radhakrishnan on 16-Sep-08 08:31 AM
Hi all,

I have form that contains a textbox with multiline option and two button name called "Save" and "CheckSpelling". I need to check the spelling meanwhile I am typing in the textbox. or after I typed eveything in the textbox if i click the button name callled "CheckSpelling" I need to check the spelling with in the dotnet application.
So, Is there any library funtion for to use that?

Thanks
R. Eswaran.

Spell check - Kalit Sikka replied to Eswaran Radhakrishnan on 16-Sep-08 08:35 AM

Use Object Libary of Word 2003

class TestHarness
{
    /// <summary>
    /// testing Word Class     /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
        SpellCheck word = new SpellCheck();

        bool status = false;
        string s = "youes";

        Console.WriteLine("Checking for word : " + s );
           
        // check to see if the word is not correct 
        // return the bool (true|false)
        status = word.CheckSpelling(s);

        if (status == false)
        {
            Console.WriteLine("This word is misspelled : " + s);
            Console.WriteLine("Here are some suggestions");
            Console.WriteLine("-------------------------");

            foreach( string suggestion in word.GetSpellingSuggestions(s) )
            {
                System.Console.WriteLine( suggestion );
            }
        }
        else if (status == true)
        {
            Console.WriteLine("This word is correct : " + s );
        }

    }

Spell Check library in asp.net - Shailendrasinh Parmar replied to Eswaran Radhakrishnan on 16-Sep-08 08:35 AM

See this article for spell check textbox

http://www.codeproject.com/KB/aspnet/checkspelling.aspx

Hope it helps.

Use NetSpell - Kalit Sikka replied to Eswaran Radhakrishnan on 16-Sep-08 08:39 AM

Refer: http://www.codeproject.com/KB/string/netspell.aspx

internal System.Windows.Forms.RichTextBox Document;
internal NetSpell.SpellChecker.Spelling SpellChecker;

// add event handlers
this.SpellChecker.MisspelledWord +=
                new NetSpell.SpellChecker.Spelling.MisspelledWordEventHandler(
                                            this.SpellChecker_MisspelledWord);
this.SpellChecker.EndOfText +=
                     new NetSpell.SpellChecker.Spelling.EndOfTextEventHandler(
                                                 this.SpellChecker_EndOfText);
this.SpellChecker.DoubledWord +=
                   new NetSpell.SpellChecker.Spelling.DoubledWordEventHandler(
                                               this.SpellChecker_DoubledWord);

private void SpellChecker_DoubledWord(object sender,
                                 NetSpell.SpellChecker.SpellingEventArgs args)
{
    // update text
    this.Document.Text = this.SpellChecker.Text;
}

private void SpellChecker_EndOfText(object sender,
                                    System.EventArgs args)
{
    // update text
    this.Document.Text = this.SpellChecker.Text;
}

private void SpellChecker_MisspelledWord(object sender,
                                 NetSpell.SpellChecker.SpellingEventArgs args)
{
    // update text
    this.Document.Text = this.SpellChecker.Text;
}

// Start Spell Checking
SpellChecker.Text = this.Document.Text;
SpellChecker.SpellCheck();

Re - Web Star replied to Eswaran Radhakrishnan on 16-Sep-08 08:39 AM
http://www.download32.com/dotnet-code-library-i9093.html
Super Fast Spell Checker in C# - Perry replied to Eswaran Radhakrishnan on 16-Sep-08 08:40 AM
Hi,
I used following code in my application. This is the optimized code and very fast way to checking the spelling. You will need to call this function on textbox text changed event each time.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//Additional Includes:
using System.IO;
using System.Resources;
using System.Reflection;
using Goletas.Collections;

namespace SpellCheckSample
{
    public partial class Form1 : Form
    {
        //Our Binary Tree Object.
        BalancedBinaryTree<String> SpellChecker;
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //Initialize our tree.
            SpellChecker = new BalancedBinaryTree<string>();
        }

        private void SpellTextBox_TextChanged(object sender, EventArgs e)
        {
            String myTempString;

            //We're only going to spell check one word from this box ;)
            //split the string into multiple words and check each one if
            //necessary.
            if(SpellTextBox.Text.Length > 0)
            {
                myTempString = SpellTextBox.Text.Substring(SpellTextBox.Text.Length - 1, 1);
                if (myTempString == ' '.ToString())
                {
                    SpellTextBox.Text = SpellTextBox.Text.Substring(0, SpellTextBox.Text.Length - 1);
                    SpellTextBox.SelectionStart = SpellTextBox.Text.Length;
                }
            }

            //Check the spelling
            if (SpellChecker.Contains(SpellTextBox.Text.ToLower()))
                SpellTextBox.ForeColor = Color.Blue;//If word found, color it blue
            else
                SpellTextBox.ForeColor = Color.Red;//If word not found, color it red
        }

        //This timer starts enabled, allowing the form to appear before
        //beginning the (possibly) time consuming task of building our dictionary.
        private void Startup_Timer_Tick(object sender, EventArgs e)
        {
            Startup_Timer.Enabled = false;
            build_dictionary();
        }

        void build_dictionary()
        {
            //An array of strings to temporarily store our word list in.
            //This can be created with a set length or custom length, if multiple
            //word lists are available.
            String[] wordArray = new String[128575];

            //A temporary string for reading each word from the word list.
            String temporary_string;

            //An integer which will count the number of words read from the word list.
            int nWords = 0;

            
            //Open our word list from the program's embedded resources.
            //This section could be substituted with a standard FileStream.
            Assembly a = Assembly.GetExecutingAssembly();
            Stream word_list = a.GetManifestResourceStream("SpellCheckSample.dictionary.dic");
            StreamReader r = new StreamReader(word_list);


            //Read in words from the word list until there are none left.
            while ((temporary_string = r.ReadLine()) != null)
            {
                wordArray[nWords] = temporary_string;
                nWords++;  //Remembering to count the number of words read.
            }

            //Close the word list file, they are no longer needed.
            r.Close();
            word_list.Close();

            //This integer is used to prevent an attempt at adding the same word multiple times.
            int previous_step = nWords;

            //The following section simulates the building of a Binary Search Tree from ordered data.
            //---------------------------------------------------------------------------------------
            //Traverse our array of strings multiple times in steps, 
            //each time we traverse, we take smaller steps, until eventually we
            //are taking steps of one, and visit every index of the array.
            for (int i = (nWords / 2); i >= 1; i /= 2)
            {
                for (int j = i; j <= nWords; j += i)
                {
                    if ((j % previous_step) != 0) //Don't add if we have already visited this index of the array.
                        SpellChecker.Add(wordArray[j - 1]);  // [j - 1] NB: Zero Based!
                }
                //A handy status bar to show us our progress
                myStatusText.Text = "Please wait, building spell checker dictionary: " + SpellChecker.Count.ToString() + " Words.";
                Refresh(); //Allow our status bar to display this text.

                //Remember what this step value was, so we can avoid adding indices of the array
                //which are multiples of this step value in the future.
                previous_step = i;
            }

            myStatusText.Text = "Ready, " + SpellChecker.Count.ToString() + " Words in dictionary.";

            //This temporary array of strings has served its purpose.
            Array.Clear(wordArray, 0, nWords - 1);
        }
    }
}
refer http://www.codeproject.com/KB/cs/SuperFastSpellCheck.aspx for details.
-Paresh
Spell check - Kalit Sikka replied to Eswaran Radhakrishnan on 16-Sep-08 08:41 AM
Imports System.Runtime.InteropServices 
Imports System.Reflection
Private Sub SpellAndGrammarCheck(ByVal YourTextbox As TextBox)

    Try
        'Rather than giving it a type right now, we just give 
        'it generic object status - same below 
        Dim objWord As Object = Nothing
        Dim objDoc As Object = Nothing
        Dim objData As IDataObject = Nothing

        If YourTextbox.Text = &quot;&quot; Then
        ' if there's nothing in your textbox, there's nothign to do
            Exit Sub
        End If

        objWord = System.Activator.CreateInstance(Type.GetTypeFromProgID(&quot;Word.Application&quot;))

        Dim objDocuments As Object

        objDocuments = objWord.[GetType]().InvokeMember(&quot;Documents&quot;, _
                       BindingFlags.[Default] Or BindingFlags.GetProperty, _
                       Nothing, objWord, Nothing)


        objDoc = objDocuments.[GetType]().InvokeMember(&quot;Add&quot;, BindingFlags.[Default] _
                 Or BindingFlags.InvokeMethod, Nothing, objDocuments, Nothing)
        objWord.Visible = False

        objWord.WindowState = 0
        objWord.Top = -3000
        Clipboard.SetDataObject(YourTextbox.Text)

            With objDoc
                .Content.Paste()
                .Activate()
                .CheckGrammar()
                .Content.Copy()
                objData = Clipboard.GetDataObject
                If objData.GetDataPresent(DataFormats.Text) Then
                    YourTextbox.Text = CType(objData.GetData(DataFormats.Text), String)
                End If
                .Saved = True
                .Close()
            End With
            objWord.Quit()
            ' MsgBox(&quot;Spelling check complete!&quot;)
            SPELLWORKING = True
        Catch COMEcep As COMException
            MsgBox(&quot;MS Word must be installed to perform spelling checks&quot;, , _
                   &quot;Spell check is not available&quot;)
            SPELLWORKING = False

        Catch ex As Exception
            SPELLWORKING = False

            MsgBox(&quot;Error, Make sure you have MS word installed.&quot;, , ex.Message)

        End Try
this is good one for spell check - Web Star replied to Eswaran Radhakrishnan on 16-Sep-08 08:42 AM
For this you'll need to add a reference. To do this follow these steps.

♠Start A New Project
♠Choose Project> Add Referenc
♠Click the COM tab in the Add Refence dialog box, then locate the Microsoft Word 10.0 Object Library (It may be a different version for you)
♠Double-Click this object library, then click OK to close the dialog box and add the reference.

The Code

CODE
Dim w As Object = New Word.Application
w.visible = False

Dim d as Object = w.Documents.Add
Dim id As IDataObject
Dim t As String = TextBox1.Text

If t <> "" Then Clipboard.SetDataObject(TextBox1.Text)

With d
.Content.Paste()
.CheckSpelling()
.Content.Copy()
id = Clipboard.GetDataObject

TextBox1.Text = CType(id.GetData(DataFormats.Text), String)
.Close()
End With

W.Quit(false)

Me.Text = "Spell Checking Complete"
End Sub
word object library - Perry replied to Eswaran Radhakrishnan on 16-Sep-08 08:44 AM

Hi,

You can also use Object Libary of Word 2003 by giving reference in your project -> right click->add reference -> goto Com object -> add this library. This library has the SpellCheck class and CheckSpelling method that you can use.

        SpellCheck correctword = new SpellCheck();
        status = myword.CheckSpelling(myword);

status will be true if spelling is correct and you just need to underlined the word with red dotted line if status is false.

-Paresh

code with Sanity checks - Perry replied to Eswaran Radhakrishnan on 16-Sep-08 08:48 AM

Hi,

using Word;
using System.Reflection;

private void button1_Click(object sender, System.EventArgs e)
{
    fSpellCheck(textBox1 , label1 );
}

public void fSpellCheck(TextBox tBox, Label lLbl)
{
    int iErrorCount = 0;
    Word.Application app = new Word.Application();
    if (tBox.Text.Length > 0)
    {
        app.Visible=false;
        // Setting these variables is comparable
        // to passing null to the function.
        // This is necessary because the C# null
        // cannot be passed by reference.
        object template=Missing.Value;
        object newTemplate=Missing.Value;
        object documentType=Missing.Value;
        object visible=true;
        object optional = Missing.Value;
        _Document doc = app.Documents.Add(ref template,
           ref newTemplate, ref documentType, ref visible);
        doc.Words.First.InsertBefore (tBox.Text );
        Word.ProofreadingErrors we = doc.SpellingErrors;
        iErrorCount = we.Count;
        doc.CheckSpelling( ref optional, ref optional, ref optional,
            ref optional, ref optional, ref optional, ref optional,
            ref optional, ref optional, ref optional,
            ref optional, ref optional);
        if (iErrorCount == 0)
            lLbl.Text = "Spelling OK. No errors corrected ";
        else if (iErrorCount == 1)
            lLbl.Text = "Spelling OK. 1 error corrected ";
        else
            lLbl.Text = "Spelling OK. " + iErrorCount +
                                    " errors corrected ";
        object first=0;
        object last=doc.Characters.Count -1;
        tBox.Text = doc.Range(ref first, ref last).Text;
    }
    else
        lLbl.Text = "Textbox is empty";
    object saveChanges = false;
    object originalFormat = Missing.Value;
    object routeDocument = Missing.Value;
    app.Quit(ref saveChanges, ref originalFormat, ref routeDocument);
}

refer http://www.codeproject.com/KB/cs/spellcheckdemo.aspx for details.

-Paresh

steps to add spell checker - Perry replied to Eswaran Radhakrishnan on 16-Sep-08 08:50 AM

Hi,

How to spell check a TextBox or RichTextBox
------------------------------------------
Many applications let their users enter text via a TextBox or RichTextBox on a form. If this is how your application works, you can add a spell checker in minutes using these simple steps:

Set the Hide Selection property of the control to False. This lets Sentry Spell Checker highlight any misspelled words found.


Add a "Spell check" button or menu item to your form.

In the event handler for your "Spell check" button or menu item, invoke the CheckCtrlDlg method of the SpellingCheckerEngine class, passing the Handle property of the text box you want to check.

That's all there is to it! When the "Spell check" button or menu item is pressed, Sentry will check the spelling of words in the control. If a misspelled word is found, Sentry will pop up a dialog the user can interact with to dispose of the misspelling. The misspelled word will be highlighted in the TextBox or RichTextBox. The dialog shows suggested replacements for the misspelled word. If the user makes a correction, the control will be updated automatically.
 
How to check spelling "as you type"
----------------------------------
You may want to give your users immediate feedback on spelling errors, to report misspellings as soon as they occur. This feature is used in Microsoft Office. Your users are probably already familiar with the "as you type" spell checker feature and may demand it in your product. Including it will give your product a competitive advantage.

"As you type" spell checking is easy with Sentry! Just handle the TextChanged and SelectionChanged events from the control, and call Sentry's CheckCtrlBackgroundNotify method. Sentry will monitor the user's typing in the background, and will mark any misspelled words (e.g., by changing the text color to red). Corrected words are automatically unmarked. You can catch right-mouse clicks and display a spelling context menu by calling the CheckCtrlBackgroundMenu method.

How to spell check strings
--------------------------

 The text you want to spell check may not be entered by the user -- it may be read from a disk file or database, or obtained from data structures within your application.

Sentry Spell Checker can check words contained in strings, including the StringBuilder type, interactively or not interactively.

To check a StringBuilder object interactively, just pass it to the CheckBlockDlg method. The StringBuilder can contain a single word or an entire book. Sentry will check the spelling of words in the string. If a misspelled word is found, Sentry will pop up a dialog the user can interact with to dispose of the problem. The dialog shows suggested replacements for the misspelled word. If the user makes a correction, the StringBuilder object will be updated automatically. Sentry can even optionally show the StringBuilder's contents in a text box attached to the dialog so the user can see the misspelled words in context.

Checking strings non-interactively is done via the CheckString method. CheckString is usually called in a loop. It checks each word in the string and returns when it finds a misspelled word or when all words have been checked. Your application can obtain a list of suggested replacements for the misspelled word from the Suggest function.
 

-Paresh

Use Google SOAP Search API to spell check - mv ark replied to Eswaran Radhakrishnan on 16-Sep-08 08:53 AM
Use the Google SOAP Search API service to  submit spell check requests and receive in return a suggested spell correction for the query (if available) - http://code.google.com/apis/soapsearch/reference.html
spell check libray - Binny ch replied to Eswaran Radhakrishnan on 16-Sep-08 09:04 AM

Here are some useful sites to check out.

http://www.microsoft.com/mspress/books/sampchap/5861b.asp
http://windows.oreilly.com/news/csharp_0101.html
http://www.regexlib.com/

About Word.dll:

Word.dll has one public class and two public methods:

  1. Public Class SpellCheck  

    Include "using Word.dll" at the top of file for the object reference.

    SpellCheck word = new SpellCheck();

  2. Public Method CheckSpelling

    This method will check the word and return true or false. If the word is correct then it will return true otherwise false.

    bool status = false;
    status = word.CheckSpelling("a word");

  3. Public Method GetSpellingSuggestions

    This method will return the collection of suggested words.

    foreach(string suggestion in word.GetSpellingSuggestions("a word"))
    {
    System.Console.WriteLine( suggestion );
    }

Parser Technique:

  1. Connect to spellcheck.net site and pass the word.
  2. Look for the word "correctly." in html file, if found return true
  3. else look for the word "misspelled.", if found return false.
    regular expression pattern @"(correctly.)|(misspelled.)"
  4. If the word misspelled found in html then look for the word "suggestions:"
    regular expression pattern  @"(suggestions:)"
  5. and parse the string between <blockquote>
    regular expression pattern  @"<blockquote>(?:\s*([^<]+) \s*)+ </blockquote>"
  6. and finally return the collection of suggested words.

C# code:

Source file is included in zip format for download.

Calling Word.dll wrapper class:

This is how you would call this wrapper class in your application.

using System;
//Word.dll
using Word;
///
/// Test Harness for SpellCheck Class
///
class TestHarness
{
///
/// testing Word Class
///
[STAThread]
static void Main(string[] args)
{
SpellCheck word =
new SpellCheck();
bool status = false;
string s = "youes";
Console.WriteLine("Checking for word : " + s );
// check to see if the word is not correct
// return the bool (true|false)
status = word.CheckSpelling(s);
if (status == false)
{
Console.WriteLine("This word is misspelled : " + s);
Console.WriteLine("Here are some suggestions");
Console.WriteLine("-------------------------");
foreach( string suggestion in word.GetSpellingSuggestions(s) )
{
System.Console.WriteLine( suggestion );
}
}
else if (status == true)
{
Console.WriteLine("This word is correct : " + s );
}
}
}

Compiling:

Run the "compile.bat" file at the DOS prompt, it will create necessary files.

take idea from this link: - Binny ch replied to Eswaran Radhakrishnan on 16-Sep-08 09:06 AM
internal System.Windows.Forms.RichTextBox Document;
internal NetSpell.SpellChecker.Spelling SpellChecker;

// add event handlers

this.SpellChecker.MisspelledWord +=
new NetSpell.SpellChecker.Spelling.MisspelledWordEventHandler(
this.SpellChecker_MisspelledWord);
this.SpellChecker.EndOfText +=
new NetSpell.SpellChecker.Spelling.EndOfTextEventHandler(
this.SpellChecker_EndOfText);
this.SpellChecker.DoubledWord +=
new NetSpell.SpellChecker.Spelling.DoubledWordEventHandler(
this.SpellChecker_DoubledWord);

private void SpellChecker_DoubledWord(object sender,
NetSpell.SpellChecker.SpellingEventArgs args)
{
// update text

this.Document.Text = this.SpellChecker.Text;
}

private void SpellChecker_EndOfText(object sender,
System.EventArgs args)
{
// update text

this.Document.Text = this.SpellChecker.Text;
}

private void SpellChecker_MisspelledWord(object sender,
NetSpell.SpellChecker.SpellingEventArgs args)
{
// update text

this.Document.Text = this.SpellChecker.Text;
}

// Start Spell Checking

SpellChecker.Text = this.Document.Text;
SpellChecker.SpellCheck();

http://www.codeproject.com/KB/string/netspell.aspx
http://msdn.microsoft.com/en-us/library/aa203681.aspx
your code has error.. - Eswaran Radhakrishnan replied to Web Star on 16-Sep-08 09:17 AM
hi i tried ur coding but it gives error on the line
dim d as object = w.Documents.Add

any idea
Thanks

word is open automatically and closed automatically.. - Eswaran Radhakrishnan replied to Perry on 16-Sep-08 09:50 AM
Hi Paresh,

I have used your coding. It's working fine but after I change the word to correct format the word application opens and closed automatically,

I gave false to object visible= false; in your coding but if i give like this i am getting error i mean some com error.

How to prevent to open the word and close automatically..

Thanks
R. Eswaran
solution - Perry replied to Eswaran Radhakrishnan on 16-Sep-08 10:25 AM

Why you want to set "object visible= false". It will open only first time when it is getting load but after that it will not.

-Paresh

reply to solution - Eswaran Radhakrishnan replied to Perry on 17-Sep-08 01:08 AM
hi Paresh,

Initially, i tested without giveing object visible=false but what happening was the word application opens automatically with what i typed in my textbox. after that it closed itself. it took only 2 seconds to open and close. I tried more than 5 times. all the times word opens and closed itself.
After that only I have changed the object visible = false;.
Any other idea Paresh to solve this...

Thanks
R. Eswaran.
solution - Perry replied to Eswaran Radhakrishnan on 17-Sep-08 02:25 AM

I am using following code to read the word file and for me it is not opening word each time. Could you try this.

public static void read(string fileLocation, int count, int subQueMark)

{

string allText = string.Empty;

try

{

Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

object file = fileLocation + "\\Que" + (count - 1) + "\\" + subQueMark + "marks" + "\\" + subQueMark + ".doc";

object nullobj = System.Reflection.Missing.Value;

Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj,

ref nullobj, ref nullobj, ref nullobj, ref nullobj);

doc.ActiveWindow.Selection.WholeStory();

doc.ActiveWindow.Selection.Copy();

IDataObject data = Clipboard.GetDataObject();

allText = data.GetData(DataFormats.Text).ToString();

doc.Close(ref nullobj, ref nullobj, ref nullobj);

wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);

if(!File.Exists(fileLocation + "\\Que" + (count - 1) + "\\" + subQueMark+"marks" + "\\" + subQueMark + ".txt")) {

FileStream fs1 = new FileStream(fileLocation + "\\Que" + (count - 1) + "\\" + subQueMark + "marks" + "\\" + subQueMark + ".txt", FileMode.Create, FileAccess.Write, FileShare.Read | FileShare.Delete);

fs1.Close(); fs1.Dispose();

File.WriteAllText(fileLocation + "\\Que" + (count - 1) + "\\" + subQueMark + "marks" + "\\" + subQueMark + ".txt", allText);

}

} catch(Exception ex) {

MessageBox.Show(ex.Message);

}

-PAresh

I need to check the spelling from the Textbox not from the file.. - Eswaran Radhakrishnan replied to Perry on 17-Sep-08 04:04 AM
But, I don't want to read data from file. I need to check the spellin what I typed in the textBox we have in the form. I am passing the text to the function to check the spelling when I click the button.

I choose the correct spelling from the spell check popup box. Now if i click the change button that in spell chcek popup box then immdily the word application opens and closed automatically at everytime.... But I got the correct word in my textBox.

Any other idea to resolve it..
Thanks
R. Eswaran.
any reply for that? - Eswaran Radhakrishnan replied to Perry on 17-Sep-08 08:28 AM
Hi Paresh,

any reply for my question...

Thanks
R. Eswaran.
reply - Perry replied to Eswaran Radhakrishnan on 17-Sep-08 08:40 AM

Could you please try to put "null" at "ref visible". As per me whenever you create some office object it should pop up window for first time only.

-Paresh

I have set null.. But no use - Eswaran Radhakrishnan replied to Perry on 17-Sep-08 09:33 AM
Hi,

I have set null value to visible but still the word applications opens..

Thanks
R. eswaran,
Use the open office spell checker from .NET - Thomas Maierhofer replied to Eswaran Radhakrishnan on 21-Jul-09 07:29 AM
The open office spell checker libaray is available for .NET. It is open source and free (GPL, LGPL, and MPL license) allows use in commercial apps. Download it here: http://nhunspell.sourceforge.net/
What about Super SpellChecker from Software Siglo XXI? - Miguel Cota replied to Eswaran Radhakrishnan on 16-Sep-09 02:07 PM
Take a look:
http://www.softwaresigloxxi.com/SuperSpellChecker.html
Thanks for the last Post - Umaid Saleem replied to Miguel Cota on 24-Nov-09 01:02 PM

Hi Raj cool . Thank for the last post. I really appreciate ur code in c#. Your previous code is also code, which include build_dictionary() function but was incomplete because  u haven't include namespace for

BalancedBinaryTree<String>

This dll is also missing 

using Goletas.Collections;  ???


Anyways I am looking for custom Spell Checker where I can add my own dictionary for Proper noun not MS Word Interop services.

 Dont say that u can add each word individually i know that idea, because lenght of my  custom dictionary is above 100000.

Any help in this regard will be highly appreciated.