Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Интерфейс программы

Читайте также:
  1. D. Программы использования
  2. I «Волевые* метапрограммы_________________________ 161
  3. II. Модульное структурирование содержания образовательной программы
  4. II. Требования к структуре образовательной программы дошкольного образования и ее объему
  5. II. Требования к структуре образовательной программы дошкольного образования и ее объему
  6. II. Требования к структуре основной общеобразовательной программы дошкольного образования
  7. III. Требования к структуре основной образовательной программы основного общего образования

1) Общий вид программы (рис.1)

Программа загружает текстовый файл, по которому нужно осуществить поиск, сразу же в отдельное окно. При необходимости, можно воспользоваться кнопкой «загрузить», и загрузить другой нужный документ. Текст также можно редактировать и сохранить измененный вариант, нажав на кнопку «сохранить».

Рис.1.

2) Простой поиск и подсветка слов (рис.2)

Программа позволяет осуществить простой поиск слов по тексту (на полное совпадение слов, т.е. если, например, искомое слово будет «обучение», как на рис.2, то будут найдены все слова «обучение» и подсвечены красным, но слово «обучения» не будет найдено). Также можно искать слова с учётом регистра и без.

Рис.2.

3) Поиск по тезаурусу (рис.3, рис.4)

Можно также осуществить поиск по тезаурусу, который загружается из отдельного документа сразу же при запуске программы. Тезаурус помогает пользователю с выбором необходимых слов для поиска. Так, при нажатии на стрелочку под кнопкой «поиск по тезаурусу» появляется список из трёх строк (рис.3). Можно выбрать одну из строчек, тогда появится список слов, относящийся к этому разделу (рис.4)

Рис.3.

Рис.4.

Листинг программы

using System;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

using System.IO;

 

namespace find

{

publicpartialclassForm1: Form

{

intind = 0;

 

 

public Form1()

{

InitializeComponent();

//--------------------------------------------------------

//считывание файла(словарь) который содержит тезаурус

 

// '=' - отделяет слово и его значения

char[] separator = { '=', '\n' };

stringstr_s;

string[] words;

 

using (StreamReadersr = newStreamReader(@"tezaurus.txt", Encoding.GetEncoding(1251)))

{

//считываем данные из файла в строку

str_s = sr.ReadToEnd();

 

//массив считанных из файла слов, разделённых пробелами

words = str_s.Split(separator);

}

 

foreach (string s in words)

Console.WriteLine(s);

//добавление слов до знака '=' в comboBox1

//слова после знака '=' добавляются в массив mas_2

int k = 0, j = 0;

for (inti = 0; i<words.Length; i++)

{

if (i % 2 == 0)

{

comboBox1.Items.Add(words[i]);

k++;

}

else

{

mas_2[k] = words[i];

j++;

}

}

//--------------------------------------------------------------------

//загрузка текста из файла(для примера)

rtb.LoadFile("33.txt", RichTextBoxStreamType.PlainText);

 

}

 

string[] mas_2 = newstring[100];

 

//--------------------------------------------------------------------

//выполняет поиск текста введенного в tb посредством вызова функции Find

privatevoid button3_Click(object sender, EventArgs e)

{

string s = tb.Text;

bool f = cb.Checked;

Find(s, f, rtb, ind);

ind = Find(s, f, rtb, ind);

if (ind>rtb.Text.Length) ind = 0;

}

 

//------------------------------------------------------------

//выполняет поиск по тезаурусу введенного в lb посредством вызова функции Find

privatevoid button5_Click(object sender, EventArgs e)

{

string s = lb.Text;

bool f = cb.Checked;

Find(s, f, rtb, ind);

ind = Find(s, f, rtb, ind);

if (ind>rtb.Text.Length) ind = 0;

}

//--------------------------------------------------------------------

// поискпотексту

publicstaticint Find(string text, boolmatchCase, System.Windows.Forms.RichTextBoxrtb,inti)

{

try

{

intstartPos;

 

StringComparison type;

 

//Сравнивает строку, используя правила сортировки с учетом инвариантного языка и региональных параметров.

if (matchCase == true) type = StringComparison.InvariantCulture;

else type= StringComparison.InvariantCultureIgnoreCase;

 

//перебортекста

startPos = rtb.Text.IndexOf(text,i, type);

i = startPos+1;

 

if (!(startPos>= 0))

{

//если текст не найден, либо конец файла выводим сообщение

MessageBox.Show("Искомый текст: '" + text + "' не найден", "Текст не найден", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

return 0;

}

else

{

//выделяет красным цветом найденное слово

rtb.SelectionColor = Color.Red;

//выбор найденного слова

rtb.Select(startPos, text.Length);

//прокручивает текст к найденному слову

rtb.ScrollToCaret();

//подсвечивает найденное слово

rtb.Focus();

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "Search Error");

}

returni;

}

//------------------------------------------------------------

//Учитыватьрегистр

privatevoidcb_CheckedChanged(object sender, EventArgs e)

{

ind = 0;

}

//------------------------------------------------------------

//загрузкатекстаизфайла

privatevoid button2_Click(object sender, EventArgs e)

{

rtb.Clear();

stringfname="";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

fname = openFileDialog1.FileName;

FileStream f = newFileStream(fname, FileMode.Open);

StreamReader r = newStreamReader(f, Encoding.GetEncoding(1251));

while (!r.EndOfStream)

{

rtb.AppendText(r.ReadLine());

}

r.Close();

}

 

//------------------------------------------------------------

//пказывает список слов относящихся к выбранному тезаурусу

privatevoid comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

lb.Items.Clear();

char[] spl = { ' ' };

//загрузка слов из массива mas_2

string s = mas_2[comboBox1.SelectedIndex + 1];

string[] str = s.Split(spl);

lb.Text = string.Empty;

foreach (stringsnginstr)

{

lb.Items.Add(sng);

}

}

//------------------------------------------------------------

//сохранение текста из rtb в файл

privatevoid button1_Click(object sender, EventArgs e)

 

{

//Создать SaveFileDialog запрашивающий путь и имя файла для сохранения

SaveFileDialog saveFile1 = newSaveFileDialog();

 

// указывает расширение файла

saveFile1.DefaultExt = "*.rtf";

saveFile1.Filter = "RTF Files|*.rtf";

 

if(saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK&&

saveFile1.FileName.Length > 0)

{

// СохранитьсодержимоеRichTextBoxвфайл

rtb.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);

}

}

 

}

}


Дата добавления: 2015-12-07; просмотров: 50 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.014 сек.)