Проверка орфографии с использованием слова - PullRequest
0 голосов
/ 27 февраля 2012

Я пишу код в C # для проверки орфографии.Я нашел этот код в сети.Я новичок в C # и не могу понять код.

Я нашел этот код на следующем веб-сайте: http://www.codeproject.com/Articles/4572/Using-Word-s-spellchecker-in-C

Могу ли я просто узнать общее руководство о том, чтона самом деле происходит код:

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); 

}

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

У меня нет большого опыта работы с C #, но я полагаю, что у вас есть приложение с графическим интерфейсом, кнопкой, надписью и текстовым полем.

Метод button1_Click необходим для назначения действия кнопке, при нажатии которой происходит прослушивание события для кнопки. При нажатии на эту кнопку выполняется button1_Click и вызывается метод fSpellCheck(textBox1 , label1 );.

Метод fSpellCheck(textBox1 , label1 ); реализует алгоритм проверки слова, вставляемого текстовым полем (обратите внимание на ссылку на текстовое поле в аргументах fSpellCheck). Метод проверяет слово на наличие ошибок, если слово является правильным или неправильным (с ошибками) или если текстовое поле пустое, то метод печатает в метке lLbl результат слова control.

0 голосов
/ 27 февраля 2012

Это в основном то, что делает код выше.

1) Открывает новый экземпляр Word в скрытом режиме.
2) Вставляет текст из вашего текстового поля в первый раздел документа.
3) Он вызывает проверку орфографии в текстовом документе
4) Получает счетчик ошибок от проверки орфографии и печатает количество ошибок на этикетке.
5) Он просит Word исправить ошибки в документе.
6) Копирует исправленный текст из текстового документа обратно в текстовое поле.
7) Закрывает документ и закрывает скрытый экземпляр Word.

Что нужно сделать в своем проекте:
1. Создайте ярлык (если у вас его еще нет)
2. создать текстовое поле (если у вас его еще нет)
3. Создайте кнопку (если у вас ее еще нет)

Добавьте событие click для вашей кнопки, и в этом коде вызовите fSpellCheck , как это сделано в этом коде, с вашей меткой и вашим текстовым полем в качестве аргументов.

...