Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Саня Сталин
3 / 3 / 1
Регистрация: 01.05.2015
Сообщений: 50
1

Проверить, есть ли в RichTextBox слово, содержащееся в файле

16.06.2015, 00:41. Просмотров 326. Ответов 4
Метки нет (Все метки)

В текстБокс пастятся слова с переводом на другой язык типа:

mother - мама

father - папа

Между словами строчка, задача: проверить, нет ли в файле такого слова, если есть, то не писать его а потом вывести (но это не суть, вопрос не в этом), иначе записать в файл в формате строки: "слово ; перевод", при загоне в массив происходит какая-то херня. он не видит после char '-' слово и в массиве получается только 1 ячейка, если дефис не включать в сплит, то все работает, создается 3 ячейки. (перевод, дефис, слово). Почему такое происходит, не понимаю. Далее не знаю, как проверить этот перенос строки во вводе, то есть он должен разделять всю эту дурь, если строка не пустая, однако он всегда видит, что она не пустая, вылезает эксепшн, что индекс вне границ у current в этой строке else if (curWord[0].ToLower() == current[1].ToLower())


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
        private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                foreach(string line in richTextBox1.Lines)
                {
                    string[] areLine = line.Split(new Char[] { ' ', '-', ' ' });
                    if ((line != null) && (areLine != null))
                    {
                        current = areLine; //1 - слово, 0 - перевод
                        main = new StreamReader("dictionary.txt");
                        bool flag = true;
                        while (true)
                        {
                            string cr = main.ReadLine();
                            string[] curWord = { };
                            if (cr != null)
                                curWord = cr.Split(new Char[] { ' ', ';' });
                            if (cr == null)
                                break;
                            else if (curWord[0].ToLower() == current[1].ToLower())
                            {
                                flag = false;
                                error++;
                                Array.Resize<string>(ref errors, errors.Length + 1);
                                errors[errors.Length - 1] = current[1];
                                break;
                            }
                        }
                        main.Close();
                        if (flag)
                        {
                            main.Close();
                            maine = new StreamWriter("dictionary.txt", true);
                            maine.WriteLine(current[1].ToLower() + "; " + current[0].ToLower());
                            maine.Close();
                        }
                    }
                }
            }
        }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2015, 00:41
Ответы с готовыми решениями:

Проверить что в файле есть искомое слово
Нужна помощь по следующему вопросу: Имеется файл Txt, в котором записан список...

Как в открытом текстовом файле найти слово и удалить строку которая содержит это слово?
Как в открытом текстовом файле найти слово и удалить строку которая содержит...

Удалить слово из RichTextBox
Нужно написать метод, который будет удалять заданное слово из текста....

RichTextBox найти слово
Допустим у меня есть данный текст в richtextbox1: 2012.07.18 11:55:22 : Андрей...

В richtextbox выделяется не то слово, которое нужно
В массиве wordsToType хранится текст, разбитый методом Split на слова...

4
Даценд
Модератор
Эксперт .NET
4286 / 4017 / 2661
Регистрация: 20.04.2015
Сообщений: 7,304
16.06.2015, 01:14 2
C#
1
string[] areLine = line.Split(new Char[] { ' ', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);
1
Саня Сталин
3 / 3 / 1
Регистрация: 01.05.2015
Сообщений: 50
16.06.2015, 01:19  [ТС] 3
Спасибо, а что насчет того, что после дефиса теряется слово??
0
Даценд
Модератор
Эксперт .NET
4286 / 4017 / 2661
Регистрация: 20.04.2015
Сообщений: 7,304
16.06.2015, 01:30 4
Ничего не должно теряться. Даже если второй пробел из массива убрать, то для строки
"mother - mutter" будет создан массив из 2-х слов.
Т.е.
C#
1
string[] areLine = line.Split(new Char[] { ' ', '-' }, StringSplitOptions.RemoveEmptyEntries);
0
Саня Сталин
3 / 3 / 1
Регистрация: 01.05.2015
Сообщений: 50
16.06.2015, 01:33  [ТС] 5
Прикол в том, что не создается...создается массив из 1, если дефис убрать из параметров, то из 3 -_-. а второй пробел я включил проверить просто так.. от балды..
0
16.06.2015, 01:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2015, 01:33

Почему не выделяется первое слово RichTextBox
Суть: найти слово в richtextbox, выделить цветом и переместить курсор. Есть два...

Заносить слово на новую строку Richtextbox
при нажатии на кнопку textbox передает слово в richtextbox. как сделать...

RichTextBox: проверить, был ли сохранен документ
Я открываю текстовый документ в RichTextBox... потом правлю его и сохраняю......


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru