Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 04.04.2015
Сообщений: 3

Исправление ошибок в веденном тексте (перевести с C#)

21.12.2011, 00:25. Показов 3417. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте..нужна помощь..не могу написать прогу..есть изначальный вариант на С#,а как на паскаль перевести проблема...а завтра нужно бы сдать уже..

SpellChecker

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
using System;
using System.Reflection;
using System.Collections.Generic;
using Microsoft.Office.Interop.Word;
using System.IO;
 
namespace CheckSpeller
{
    public class SpellChecker : IDisposable
    {
        public bool wordFlag;
        System.Type TWord = null;
        object com_app = null;
        Document doc;
        string filename = "1.txt";
        ApplicationClass application;
        object nothing = Missing.Value;
        private static SpellChecker Checker = new SpellChecker(); // создает экземпляр класса
 
        /// <summary>
        /// Конструктор класса
        /// </summary>
        private SpellChecker()
        {
            object template = "normal.dot";
            object newtemplate = false;
            object docType = WdNewDocumentType.wdNewBlankDocument;
            object visible = false;
            this.application = new ApplicationClass();
            this.application.Visible = false;
            this.application.DisplayAlerts = WdAlertLevel.wdAlertsNone;
            this.application.Options.SuggestSpellingCorrections = true;
            try
            {
                TWord = Type.GetTypeFromProgID("Word.Application"); // задает тип объекта
                com_app = Activator.CreateInstance(TWord);  //создает экземпляр объекта
                doc = this.application.Documents.Add(ref template, ref newtemplate, ref docType, ref visible);
                doc.Activate();
                wordFlag = true;
            }
            catch 
            { 
                com_app = null;
                wordFlag = false;
            }
        }
 
        /// <summary>
        /// Проперти для получения экземпляра класса извне
        /// </summary>
        /// <returns>экземпляр класса</returns>
        public static SpellChecker GetChecker() { return Checker; }
 
        /// <summary>
        /// выключение программы
        /// </summary>
        public void Dispose()
        {
            object saveNoChanges = WdSaveOptions.wdDoNotSaveChanges;
            object nothing = Missing.Value;
            if (com_app != null)
            {
                object[] arg = { null, null, null };
                TWord.InvokeMember("Quit", BindingFlags.InvokeMethod, //выполняется метотд закрытия Word
                 null, com_app, arg);
                com_app = null;
                if (this.application != null)
                {
                    this.application.Quit(ref saveNoChanges, ref nothing, ref nothing);
                    application = null;
                }
            }
        }
 
        /// <summary>
        /// Метод проверки орфографии
        /// </summary>
        /// <param name="word">Введенное слово</param>
        /// <returns>верно или нет</returns>
        public bool CheckWord(string word)
        {
            if (wordFlag)
            {
                object[] arg = { word };
                return (bool)TWord.InvokeMember("CheckSpelling",  //выполняется метод проверки
                 BindingFlags.InvokeMethod, null, com_app, arg);
            }
            else
            {
                List<string> list = new List<string>();
                bool check = false;
                StreamReader sr = new StreamReader(filename);
                while (sr.Peek() > -1)
                {
                    list.Add(sr.ReadLine());
                }
                foreach (string suggest in list)
                {
                    if (word == suggest)
                    { check = true; }
                }
                return check;
            }
        }
 
        /// <summary>
        /// Возвращает список вариантов
        /// </summary>
        /// <param name="word">введенное слово</param>
        /// <returns>список</returns>
        public List<string> GetSuggestions(string word)
        {
            List<string> wordsList = new List<string>();
            SpellingSuggestions suggestions = this.application.GetSpellingSuggestions(word, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing, ref nothing);
            foreach (SpellingSuggestion suggestion in suggestions)
            {
                wordsList.Add(suggestion.Name);
            }
            suggestions = null;
            return wordsList;
        }
    }
}
 
Form1
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Diagnostics;
using System.Windows.Forms;
 
namespace CheckSpeller
{
    public partial class Form1 : Form
    {
        HelpForm hp = new HelpForm();
        SpellChecker sc = SpellChecker.GetChecker(); // получение экземпляра класса
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// событие при нажатии на кнопку "проверить"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            List<string> words = sc.GetSuggestions(textBox1.Text);
            if (textBox1.Text != "") // проверка наличия слова в окошке
            {
                if (sc.CheckWord(textBox1.Text)) // проверка слова
                {
                    MessageBox.Show("Слово верно"); // выводится сообщение, что слово верно                    
                }
                else
                {
                    MessageBox.Show("Слово неверно"); // выводится сообщение, что слово не верно
                }
                foreach (string word in words)
                {
                    textBox2.Text += word + "\r\n";
                }
            }
            else { MessageBox.Show("Введите слово"); }
        }
        /// <summary>
        /// Событие при закрытии приложения
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            sc.Dispose();
        }
 
        private void helpButton_Click(object sender, EventArgs e)
        {
            hp.ShowDialog();
        }
 
        private void spravka_Click(object sender, EventArgs e)
        {
            Process.Start("Tutorial.chm", "");
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Process.Start("Help.chm", "");
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.12.2011, 00:25
Ответы с готовыми решениями:

Не работает автоматическое исправление ошибок в тексте
дело втом что ворд у меня не исправляет ошибки ни в украинском ни врускком только в английском у друзей в настройках смотрел но настройки...

Исправление синтаксических ошибок в тексте клиентского запроса
Возникла проблема. Клиент осуществляет поиск по базе, например, запрос может быть таким 'кофе Хауз', но может звучать и по другому: 'Хауз...

Подсчитать количество цифр в веденном тексте
///

1
0 / 0 / 0
Регистрация: 17.06.2012
Сообщений: 8
19.06.2012, 17:26
А ты случайно не знаешь, как в richtextbox реализовать проверку орфографии, хотя бы например средствами Word?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2012, 17:26
Помогаю со студенческими работами здесь

Определить длину самого короткого слова в ведённом тексте
Помогите пожалуйста написать программу на C# №2) Определить длину самого короткого слова в ведённом тексте.

Найти количество знаков пунктуации в ведённом пользователем тексте
Решил я написать прогу, где я буду вводить слова и мне будет выдавать количество знаков пунктуации, но что-то пошло не так( Насколько я...

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

Вывести на экран все трёх буквенные слова в ведённом тексте
Помогите пожалуйста написать программу на C# №4) Вывести на экран все трёх буквенные слова в ведённом тексте.

Строковый тип данных. Посчитать количество сдвоенных букв во ведённом тексте.
1. Дана строка, состоящая из слов, разделённых пробелами. Посчитать количество сдвоенных букв во ведённом тексте.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru