Требования к программе
1)Требования к функциональным характеристикам Программа должна выполнять следующие функции: - вывод текста в окно программы из выбранного файла - тексты формата .rtf, .txt - поиск строки по шаблону; - выделение найденной строки в тексте;
2) Требования к надежности - Существование указанного файла; - Файл должен быть с расширением *.txt, *.rtf; - Верный ввод пути к файлу; 3) Требования к составу и параметрам технических средств Минимальные требования: 250 MB RAM, процессор 2.2 GHz, мышь, клавиатура, монитор. 4) Требования к информационной и программной совместимости Программа должна поддерживаться любой операционной системой семейства Windows. Требования к программной документации Программная документация должна содержать расчетно-пояснительную записку, руководство пользователя, текст программы, блок-схема алгоритмов, техническое задание. Стадии и этапы разработки
Порядок контроля и приемки
Приложение 2 Общая схема
Приожение 2 Алгоритм Рабина-Карпа
Приложение 3 type TForm1 = class(TForm) RichEdit1: TRichEdit; Edit1: TEdit; Button1: TButton; OpenDialog1: TOpenDialog; Label1: TLabel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; Timer1: TTimer; N7: TMenuItem; procedure Button1Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure N7Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var DATA: TextFile;
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var dlina_poiska, dlina_text, hashpoisk, hashtext, i, vid_text : integer; str_poiska, str_text, bufer_text: string; begin RichEdit1.SelStart := 0; RichEdit1.SelLength := length(RichEdit1.Text); // => очистка цвета RichEdit1.SelAttributes.Color := clblack; str_poiska := Edit1.Text; dlina_poiska := length(str_poiska); hashpoisk := 0; str_text := RichEdit1.Text; dlina_text := length(str_text);
for i := 1 to dlina_poiska do begin if ((str_poiska[i] = #184) or (str_poiska[i] = #168)) then str_poiska[i] := 'е'; end;
for i := 1 to dlina_text do begin if ((str_text[i] = #184) or (str_text[i] = #168)) then str_text[i] := 'е'; end;
str_text := AnsiUpperCase(str_text); str_poiska := AnsiUpperCase(str_poiska);
for i := 1 to dlina_poiska do begin hashpoisk := hashpoisk + ord(str_poiska[i]); end;
for vid_text := 0 to dlina_text - 1 do begin bufer_text := copy(str_text, vid_text + 1, dlina_poiska); hashtext := 0; for i := 1 to dlina_poiska do hashtext := hashtext + ord(bufer_text[i]); if hashpoisk = hashtext then begin if str_poiska = bufer_text then begin RichEdit1.SelStart := vid_text; RichEdit1.SelLength := dlina_poiska; RichEdit1.SelAttributes.Color := clRed; end; end; end;
if RichEdit1.SelAttributes.Color = clblack then ShowMessage('Такой строки нет'); end;
procedure TForm1.N5Click(Sender: TObject); begin Close; end;
procedure TForm1.N3Click(Sender: TObject); begin If (opendialog1.Execute) then Begin AssignFile(DATA,OpenDialog1.FileName); RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName); End; end;
procedure TForm1.N6Click(Sender: TObject); begin RichEdit1.Clear; Edit1.Clear; end;
procedure TForm1.N4Click(Sender: TObject); begin Form2.Show; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled := False; Form1.Visible := False; end; procedure TForm1.N7Click(Sender: TObject); begin RichEdit1.SelStart := 0; // RichEdit1.SelLength := length(RichEdit1.Text); // => очистка цвета RichEdit1.SelAttributes.Color := clblack; // end; end.
Unit 2:
type TForm2 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject); begin Memo1.Lines.Add ( '1) Если вы хотите вывести текст из файла, то нажмите файл -> открыть'); Memo1.Lines.Add ( 'и выбирете нужный вам файл ( расширения .txt , .rtf )'); Memo1.Lines.Add ( 'если же нужно просто ввести текст вручную, то набирайте его в соответствующее поле'); Memo1.Lines.Add ( '2) Введите подстроку, которую нужно найти в тексте ( без учёта регистра и без учёта "е" и "ё")'); Memo1.Lines.Add ( '3) Нажмите кнопку "Найти" '); Memo1.Lines.Add ( '4) Если нужно всё очистить, то нажмите файл -> очистить, если же нужно очистить выделение, то нажмите файл -> очистить выделение'); Memo1.Lines.Add ( '5)Для закрытия программы нажмите файл -> закрыть'); end;
end.
Unit 3:
type TForm3 = class(TForm) Timer1: TTimer; Image1: TImage; procedure Timer1Timer(Sender: TObject);
private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation uses Unit1; {$R *.dfm} procedure TForm3.Timer1Timer(Sender: TObject); begin Timer1.Enabled := False; Form1.Show; Form3.Visible := False;
end;
end.
Приложение 4 Руководство пользователя Общие сведения Программа «Поиск подстроки в строке» предназначена для поиска строки по заданному пользователем шаблону в тексте. Описание запуска Для запуска программы необходимо воспользоваться файлом Search.exe. Инструкция по работе
1. Открываем программу 2. В диалоговом окне выбираем текстовый файл, после выбора которого, текст выведется в окне 3. В строку под текстом вводим строку для поиска 4. Нажимаем кнопку «Найти» 4.1 Если такая строка есть, то она выделится красным цветом 4.2 Если строки нет, то будет выведено сообщение «Такой строки нет» 5. Для очистки окна с текстом выберете «очистить» 5.1 Для очистки выделения текста выберете «очистить выделение» 6. Для вывода справки по работе нажмите Справка -> Руководство к работе 7. Для завершения работы нажмите крестик в правом верхнем углу или нажмите Файл -> Закрыть
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (466)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |