Обработка текстовых файлов в среде Lazarus

Автор: Пользователь скрыл имя, 03 Декабря 2011 в 21:59, курсовая работа

Описание работы

Цель работы: Обработка текстовых файлов в среде Lazarus. Исходным файлом для проверки является текст программы на языке Паскаль.
В данной курсовой работе написана программа для определения возрастания слов по порядку, если возрастают – нумерование нечетных строк и выделение самой длинной строки, и строки с самым длинным словом звездочками также указать количество слов в каждой строчке.
Программа разработана с использованием среды визуального программирования Lazarus и языка Object Pascal. Результаты работы программы выводятся на экран.

Содержание

Введение 5
1. Постановка задачи 6
2. РАЗРАБОТКА АЛГОРИТМА 8
3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ 9
4. ИНСТРУКЦИЯ ОПЕРАТОРУ 10
5. ОПИСАНИЕ ПОЛУЧКНЫХ РЕЗУЛЬТАТОВ……………………………………..14
6. ВЫВОД………………………………………………………………………………..14
ПЕРЕЧЕНЬ ССЫЛОК 15
ПРИЛОЖЕНИЕ А 16
ПРИЛОЖЕНИЕ Б 19

Работа содержит 1 файл

Моя курсовая работа2.doc

— 1.30 Мб (Скачать)
ign="justify">    Результатом курсовой работы является созданная  программа, которая работает с текстовым  файлом.

ПЕРЕЧЕНЬ  ССЫЛОК 

    1. Галисеев  Г.В. Программирование в среде Delphi 7. Самоучитель
    2. Шупрута В.В. Delphi 2005. Учимся программировать, НТ ПРЕСС ООО МОСКВА, – 352 с.
    3. Самофалов К.Г. Прикладная теория цифровых автоматов, Киев, "Вища школа", 1987г.

Приложение А

Приложение  Б

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

  1. unit Unit1;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls;
 
  1. Type
  2. TForm1 = class(TForm)
  3. GroupBox1: TGroupBox;
  4. Button1: TButton;
  5. Button2: TButton;
  6. Button3: TButton;
  7. Button4: TButton;
  8. txt_source: TMemo;
  9. dlg_open: TOpenDialog;
  10. Button5: TButton;
  11. dlg_save: TSaveDialog;
  12. procedure Button2Click(Sender: TObject);
  13. procedure Button4Click(Sender: TObject);
  14. procedure Button1Click(Sender: TObject);
  15. procedure Button5Click(Sender: TObject);
  16. procedure Button3Click(Sender: TObject);
  17. private
  18. { Private declarations }
  19. public
  20. { Public declarations }
  21. end;
 
  1. var
  2. Form1: TForm1;
  3. implementation
  4. {$R *.dfm}
 
  1. procedure TForm1.Button2Click(Sender: TObject);
  2. begin
  3. Form1.Close();
  4. end;
 
  1. procedure TForm1.Button4Click(Sender: TObject);
  2. begin
  3. txt_source.Clear();
  4. end;
 
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. if (dlg_open.Execute) then
  4. txt_source.Lines.LoadFromFile(dlg_open.FileName);
  5. end;
 
  1. procedure TForm1.Button5Click(Sender: TObject);
  2. var
  3. x:integer;
  4. s:String; sl:TStringList; n,p:integer;
  5. f:boolean;
  6. words:TStringList;//Массив количества слов в строке
  7. words_len:TStringList;//Массив длины последних слов строк
  8. begin
  9. //Создаем разделитель слов и необходимые массивы
  10. sl:=TStringList.Create;
  11. words:=TStringList.Create;
  12. words_len:=TStringList.Create;
  13. sl.Delimiter:=' ';
  14. p:=0;
  15. f:=false;
  16. //Проверяем расположены ли слова по возврастанию
  17. for x:=0 to txt_source.Lines.Count-1 do
  18. begins:=txt_source.Lines[x];
  19. sl.DelimitedText:=s;
  20. p:=0;
  21. //Массив количества слов в строках
  22. words.Add(IntToStr(sl.Count));
  23. //Непосредственно проверка на правильность возрастания
  24. for n:=0 to sl.Count-1 do
  25. begin
  26. if length(sl.Strings[n])>=p then
  27. p:=length(sl.Strings[n])
  28. else
  29. begin
  30. f:=true;
  31. break;
  32. end;
  33. end;
  34. if f then break;

    //Массив длины  последнего слова в строках

  1. words_len.Add(IntToStr(Length(sl.Strings[sl.Count-1])));
  2. end;
 
  1. if f then
  2. begin
  3. messageBox(Form1.Handle,'Слова не расположены по возврастанию','',0);
  4. exit;
  5. end;

    //Выделяем строки  с наибольшим количеством слов

  1. n:=0;
  2. //Находим максимум количества слов
  3. for x:=0 to words.Count-1 do
  4. if StrToInt(words.Strings[x])>n then
  5. n:=StrToInt(words.Strings[x]);

    //Непосредственно  выделяем строки с наибольшим  количеством слов

  1. for x:=0 to words.Count-1 do
  2. if StrToInt(words.Strings[x])=n then

    begin

txt_source.Lines[x]:='*'+txt_source.Lines[x]+'*';

    end;

    //Выделяем строки  с самым длинным словом

  1. n:=0;
  2. //Находим максимум длины слова
  3. for x:=0 to words_len.Count-1 do
  4. if StrToInt(words_len.Strings[x])>n then n:=StrToInt(words_len.Strings[x]);

    //Непосредственно  выделяем строки с самым длинным  словом

  1. for x:=0 to words_len.Count-1 do
  2. if StrToInt(words_len.Strings[x])=n then
  3. begin
  4. txt_source.Lines[x]:='*'+txt_source.Lines[x]+'*';
  5. end;

    //Добавляем информацию  о строках

  1. for x:=0 to txt_source.Lines.Count-1 do
  2. begin

    //Проверяем нечетность

  1. if x mod 2<>0 then
  2. txt_source.Lines[x]:=IntToStr(x)+txt_source.Lines[x];
  3. txt_source.Lines[x]:=txt_source.Lines[x]+words.Strings[x];
  4. end;
  5. end;
 
  1. procedure TForm1.Button3Click(Sender: TObject);
  2. begin
  3. if (dlg_save.Execute) then
  4. txt_source.Lines.SaveToFile(dlg_save.FileName+'.txt');
  5. end;
  6. end.

 

Приложение  В

Результаты  выполнения программы

Исходный  файл

 

Результирующий  файл.

Информация о работе Обработка текстовых файлов в среде Lazarus