Обработка текстовых файлов в среде Lazarus
Министерство образования и науки Украины
Восточноукраинский национальный университет
имени Владимира Даля
Технологический институт
м. Севередонецьк
Кафедра компьютерной инженерии
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К
КУРСОВОЙ РАБОТЕ ПО
ПРОГРАММИРОВАНИЮ
на
тему: «Обработка текстовых файлов»
Выполнил студентка группы КИ-29з Лагода Т.Н..
Проверил
Северодонецк 2010
РЕФЕРАТ
Пояснительная записка к курсовой работе содержит 23 страницы, 8 рисунков и 3 приложения.
Цель работы: Обработка текстовых файлов в среде Lazarus. Исходным файлом для проверки является текст программы на языке Паскаль.
В данной курсовой работе написана программа для определения возрастания слов по порядку, если возрастают – нумерование нечетных строк и выделение самой длинной строки, и строки с самым длинным словом звездочками также указать количество слов в каждой строчке.
Программа
разработана с использованием среды визуального
программирования Lazarus и языка Object Pascal. Результаты
работы программы выводятся на экран.
ТЕКСТОВЫЙ
ФАЙЛ, ИСХОДНЫЕ ДАННЫЕ,
ИТОГОВЫЕ ДАННЫЕ, УСЛОВИЯ,
СТРОКИ.
СОДЕРЖАНИЕ
Введение 5
1. Постановка задачи 6
2. РАЗРАБОТКА АЛГОРИТМА 8
3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ 9
4. ИНСТРУКЦИЯ ОПЕРАТОРУ 10
5. ОПИСАНИЕ ПОЛУЧКНЫХ РЕЗУЛЬТАТОВ……………………………………..14
6. ВЫВОД…………………………………………………………………
ПЕРЕЧЕНЬ ССЫЛОК 15
ПРИЛОЖЕНИЕ А 16
ПРИЛОЖЕНИЕ Б 19
ПРИЛОЖЕНИЕ В 24
ВВЕДЕНИЕ
Cреда Lazarus включает в себя полный набор визуальных инструментов для скоростной разработки приложений, поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток [1].
Инструментальные средства Lazarus предоставляют разнообразные возможности для создания информационных приложений в различных типах архитектуру программного обеспечения. Интегрированная среда Lazarus позволяет быстро и просто создавать визуальные интерфейсы приложений и использовать возможности языков программирования для их построения.
Lazarus использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны выразительную мощь и простоту программирования, характерную для языков 4GL, а с другой стороны эффективность языка 3GL. Программисты немедленно могут начать производить работающие приложения, и им не придется для этого изучать особенности программирования событий в Windows. Lazarus полностью поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями.
Lazarus обладает мощнейшим,
встроенным в редактор графическим отладчиком,
позволяющим находить и устранять ошибки
в коде. Можно установить точки останова,
проверить и изменить переменные, при
помощи пошагового выполнения в точности
понять поведение программы. Если же требуются
возможности более тонкой отладки, можно
использовать отдельно доступный Turbo Debugger,
проверив ассемблерные инструкции и регистры
процессора [2].
1 ПОСТАНОВКА ЗАДАЧИ
Целью курсового проекта является разработка программы для Обработки текстовых файлов в среде Lazarus.
Файл – это поименованная область памяти на диске или другом внешнем запоминающем устройстве.
Текстовые файлы в Паскале – это файлы последовательного дocтупа. Они состоят из элементов различной длины, к которым можно обращаться только последовательно – от начала к концу. Для многих случаев такой порядок выборки данных из файла естественен, но иногда вызывает большие потери времени.
Текстовый файл рассматривается как последовательность символов, разбитая на строки.
Срока – набор символов заключенных в апострофы.
Создание
формы. Разработать интерфейс. Он должен
быть максимально простым и
На форме находиться 5 кнопок и компонент Group Box :
«Открыть»
– открывает сохраненный
TForm1.Button1Click(Sender: TObject); [39]
«Сохранить» – сохранение текстового файла, используем процедуру TForm1.Button3Click(Sender: TObject);[ 108]
«Очистить»
– очистить содержание файла, используем
процедуру TForm1.Button4Click(
«Выполнить»
– выполнение условия
«Выход»
– закрытие формы, используем процедуру,
TForm1.Button2Click(Sender: TObject);[31]
Рисунок 1.1 - Форма программы и основные компоненты
2 РАЗРАБОТКА АЛГОРИТМА
На рисунке 2.1 приведена схематическая диаграмма, которая отображает основные этапы разрабатываемого алгоритма.
Рисунок 2.1 - Схематическая диаграмма, отображающую основные этапы разрабатываемого алгоритма
1.
Создаем разделитель слов и
необходимые массивы – В
этом части устанавливается
2. Проверяем расположены слова по возрастанию. Если слова расположены по возрастанию, то мы продолжаем работать с программой, если же нет, то программа выдает сообщение об ошибке и заканчивает работу.[7]
3.
Выделяем строки с наибольшим
количеством слов– находим
4. Непосредственно выделяем строки с самым длинным словом – выделяем строки с самым длинным словом, находим максимум длины слова, непосредственно выделяем строки с самым длинным словом[13,14,20]
5.
Добавляем информацию о
3 ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ
- TForm1.Button1Click(Sender: TObject) Процедура события нажатия кнопки. Эта процедура открывает уде готовый исходный файл..
- TForm1.Button2Click(Sender: TObject). Процедура события нажатия кнопки. Закрывает форму.
- TForm1.Button3Click(Sender: TObject). Процедура события нажатия кнопки. Выполняет операцию сохранений исходного или измененного файла
- TForm1.Button4Click(Sender: TObject) Процедура события нажатия кнопки. Очищает форму от текста.
- TForm1.Button5Click(Sender: TObject) Процедура события нажатия кнопки. Выполняет следующие функции: создаем разделитель слов и необходимые массивы, проверяем расположены ли слова по возрастанию, непосредственно проверяем на правильность возрастания, выделяем строки с наибольшим количеством слов, выделяем строки с самым длинным словом, находим максимум длины слова, непосредственно выделяем строки с самым длинным словом, добавляем информацию о строках.
4 ИНСТРУКЦИЯ
ОПЕРАТОРУ
4.1.
При запуске программы на
Рисунок
4.1 – Окно программы
4.2. Для открытия файла необходимо нажать кнопку «Открыть». Появится диалоговое окно выбора файла. На рисунке 4.2 приведено окно выбора. Выбираем нужный файл и нажимаем кнопку «Открыть».
Рисунок 4.2 – Окно выбора
На рисунке 4.3 изображено окно программы с открытым файлом.
Рисунок 4.3 – Окно программы с открытым файлом
4.4. Если файл не был предварительно сохранен, можно вводить текст сразу в форме.
4.5. После его можно сохранить или непосредственно работать с введенным текстом нажав кнопку «Выполнить». В случае если слова были расположены по возрастанию программа выполниться, и будет иметь вид рисунок 4.4.
Рисунок 4.4 – Окно выполненной программы.
4.6. Если условие выполнения возрастания слов не выполняется, программа выдаст сообщение об ошибке, рисунок 4.5.
Рисунок 4.5 –Сообщение о невыполнении условия возрастания.
5 ОПИСАНИЕ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ
Строки проверены на возрастание.
Определенно самое длинное слово, и самая длинная строка.
Перед нечетными строками появилось номер строки и количество слов во всех строках.
Самое
длинное слово, и самая длинная
строка выделены звездочками.
6 ВЫВОДЫ
Выполняя курсовую работу, я ознакомилась со средой программирования Lazarus. Мною были изучены возможности создания форм, а также использование стандартных компонентов.
Так как Lazarus работает с языком Object Pascal, мною были проведены сравнения уже ранее знакомых действий в среде программирования FreePascal. Проанализированные новые возможности Lazarus.
ПЕРЕЧЕНЬ
ССЫЛОК
- Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель
- Шупрута В.В. Delphi 2005. Учимся программировать, НТ ПРЕСС ООО МОСКВА, – 352 с.
- Самофалов К.Г. Прикладная теория цифровых автоматов, Киев, "Вища школа", 1987г.
Приложение А
Приложение Б
Листинг
основной программы
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- Type
- TForm1 = class(TForm)
- GroupBox1: TGroupBox;
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- txt_source: TMemo;
- dlg_open: TOpenDialog;
- Button5: TButton;
- dlg_save: TSaveDialog;
- procedure Button2Click(Sender: TObject);
- procedure Button4Click(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure Button5Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- Form1.Close();
- end;
- procedure TForm1.Button4Click(Sender: TObject);
- begin
- txt_source.Clear();
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if (dlg_open.Execute) then
- txt_source.Lines.LoadFromFile(
dlg_open.FileName); - end;
- procedure TForm1.Button5Click(Sender: TObject);
- var
- x:integer;
- s:String; sl:TStringList; n,p:integer;
- f:boolean;
- words:TStringList;//Массив количества слов в строке
- words_len:TStringList;//Массив длины последних слов строк
- begin
- //Создаем разделитель слов и необходимые массивы
- sl:=TStringList.Create;
- words:=TStringList.Create;
- words_len:=TStringList.Create;
- sl.Delimiter:=' ';
- p:=0;
- f:=false;
- //Проверяем расположены ли слова по возврастанию
- for x:=0 to txt_source.Lines.Count-1 do
- begins:=txt_source.Lines[x];
- sl.DelimitedText:=s;
- p:=0;
- //Массив количества слов в строках
- words.Add(IntToStr(sl.Count));
- //Непосредственно проверка на правильность возрастания
- for n:=0 to sl.Count-1 do
- begin
- if length(sl.Strings[n])>=p then
- p:=length(sl.Strings[n])
- else
- begin
- f:=true;
- break;
- end;
- end;
- if f then break;
//Массив длины последнего слова в строках
- words_len.Add(IntToStr(Length(
sl.Strings[sl.Count-1]))); - end;
- if f then
- begin
- messageBox(Form1.Handle,'Слова не расположены по возврастанию','',0);
- exit;
- end;
//Выделяем строки с наибольшим количеством слов
- n:=0;
- //Находим максимум количества слов
- for x:=0 to words.Count-1 do
- if StrToInt(words.Strings[x])>n then
- n:=StrToInt(words.Strings[x]);
//Непосредственно выделяем строки с наибольшим количеством слов
- for x:=0 to words.Count-1 do
- if StrToInt(words.Strings[x])=n then
begin
txt_source.Lines[x]:='*'+txt_
end;
//Выделяем строки с самым длинным словом
- n:=0;
- //Находим максимум длины слова
- for x:=0 to words_len.Count-1 do
- if StrToInt(words_len.Strings[x])
>n then n:=StrToInt(words_len.Strings[ x]);
//Непосредственно
выделяем строки с самым
- for x:=0 to words_len.Count-1 do
- if StrToInt(words_len.Strings[x])
=n then - begin
- txt_source.Lines[x]:='*'+txt_
source.Lines[x]+'*'; - end;
//Добавляем информацию о строках
- for x:=0 to txt_source.Lines.Count-1 do
- begin
//Проверяем нечетность
- if x mod 2<>0 then
- txt_source.Lines[x]:=IntToStr(
x)+txt_source.Lines[x]; - txt_source.Lines[x]:=txt_
source.Lines[x]+words.Strings[ x]; - end;
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- if (dlg_save.Execute) then
- txt_source.Lines.SaveToFile(
dlg_save.FileName+'.txt'); - end;
- end.
Приложение В
Результаты выполнения программы
Исходный файл
Результирующий файл.

- Обработка текстовых файлов на языке Паскаль
- Обработка текстовых файлов на языке Паскаль
- Обработка червяка рулевого управления
- Обработка числовых данных
- Обработка шкур
- Обработка экспериментальных данных
- Обработка экспериментальных данных. Выбор средств измерений
- Обработка статистических данных средствами пакета Statgraphics
- Обработка статистических данных (статистика затрат)
- Обработка статистических данных (статистика затрат)
- Обработка статистических показателей автотранспортных предприятий (АТО)
- Обработка статистической информации, проведение экономико-статистического анализа эффективности использования основных фондов на пре
- Обработка субпродуктов КРС
- Обработка текстов на С++