Когда речь идет о работе программы с текстовым файлом, подразумеваются процедуры ввода данных из файла в программу или, наоборот, запись этих данных в файл программой. Для текстового файла допустима простая работа с файлом без особых дополнительных механизмов, которые применяются для работы со специализированными файлами, такими как при загрузке данных из Excel или работе программы с базой данных. Разумеется, Delphi располагает возможностями работать с файлами с использованием компонентов. Но в данной статье рассматривается механизм прямой работы с текстовым файлом без использования дополнительных компонентов.
Итак, в общем виде, работа с файлом заключается в следующих этапах:
1. подключение к файлу – связь с внешним файлом, указание режима подключения;
2. выполнение операций записи в файл или чтения из файла;
3. завершение работы с файлом.
Подключение к файлу
Для связи программы с файлом используется специальная переменная – «Файловая переменная». Объявляется она так же как и любая переменная в Delphi. Тип это переменной может быть File для типизированных (хранящих данные определенного типа) файлов, а можно указать TextFile, что будет означать тип обычного текстового файла. Объявление переменной:
Всё о Delphi & Pascal / Из музыканта в программисты / Интервью с Delphi Developer
var f : TextFile;
В исполняемом коде программы выполняется подключение к внешнему файлу:
AssignFile(f, ‘input.txt’);
Команда AssignFile, выполняет связь файловой переменной с внешним файлом. Вторым параметром указывается адрес файла. Он может быть задан относительным или абсолютным. Если указать только имя файла, то программа будет пытаться обнаружить его в той же директории, где она сама и находится. Абсолютный путь указывается от корневого диска:
AssignFile(f, ‘C:myproginput.txt’);
Использование относительной директории дает возможность не привязываться к конкретным дискам и адресам. Например:
AssignFile(f, ‘datainput.txt’); // во вложенной папке относительно директории с программой AssignFile(f, ‘..input.txt’); // на уровень выше директории с программой AssignFile(f, ‘..datainput.txt’); // во вложенной папке на уровень выше директории с программой
После того как выполнено подключение, выполняется процедура, устанавливающая режим работы с файлом. В основном это режим чтения или записи. Эти режимы назначаются процедурами Reset() ( для чтения) и rewrite() (для записи):
Reset(f); Rewrite(f);
* Для команды Rewrite() следует учитывать, что при ее выполнении, она либо создает файл, указанный в файловой переменной, либо если он уже есть перезаписывает файл заново, удаляя старый без какого-то предупреждения.
Любую из указанных команд можно использовать без команды AssignFile(). Для этого достаточно вторым параметром указать путь к файлу. Таким образом, она сразу выполнит привязку файла к файловой переменной и назначит режим работы с этим файлом:
Reset(f, ‘C:myproginput.txt’); // чтение Rewrite(f, ‘C:myproginput.txt’); // запись
Операции с файлами
Для чтения из файла, необходимо назначить режим чтения и использовать команду Readln(), которая будет вводить в строковую переменную по одной строке из файла. Затем с этой переменой можно выполнить необходимые действия.
Первый запуск и работа в Autocom , Delphi, Opus
Readln(f, s);
Обычно для загрузки всех строк из файла используется оператор цикла. Для того, чтобы определить, что файл закончился используется функция EOF() (End Of File). Таким образом получается цикл, в котором последовательно в строковую переменную вводятся все строки файла и завершающийся после окончания фала:
while (not EOF(f)) do begin Readln(f, s); end;
Для записи, назначение режим записи в файл и командой Writeln() производится запись по строкам.
Writeln(f, ‘text’);
Закрытие файла
По завершении работы с файлами, особенно в случае записи в них данных, необходимо корректно завершить работу с файловой переменной. Это делается для того, чтобы сохранить все внесенные в файл изменения.
CloseFile(f);
Примеры работы с текстовыми файлами в Delphi
Чтение в переменную одного значения из файла:
var f : TextFile; s : String; begin AssignFile(f, ‘input.txt’); Reset(f); Readln(f, s); CloseFile(f); end;
Загрузить все строки файла в компонент Memo:
var f : TextFile; s : String; begin AssignFile(f, ‘input.txt’); Reset(f); while (not EOF(f)) do begin Readln(f, s); myMemo.Lines.Add(s); end; CloseFile(f); end;
Следует отметить, что для этой задачи проще воспользоваться командой самого компонента Memo LoadFromFile().
myMemo.Lines.LoadFromFile(‘input.txt’);
Записать строку в файл:
var f : TextFile; begin AssignFile(f, ‘input.txt’); Rewrite(f); Writeln(f, ‘My text’); CloseFile(f); end;
Записать в текстовый файл все строки из компонента Memo:
var f : TextFile; i : Integer; begin AssignFile(f, ‘input.txt’); Rewrite(f); for i := 0 to myMemo.Lines.Count — 1 do Writeln(f, myMemo.Lines[i]); CloseFile(f); end;
Как и для чтения из файла в Memo, так и здесь, имеется специальная команда:
myMemo.Lines.SaveToFile(‘input.txt’);
Источник: space-base.ru
Язык Delphi
• Delphi — это среда быстрой разработки, в
которой в качестве языка
программирования используется язык
Delphi.
• Язык Delphi — строго типизированный
объектно-ориентированный язык, в основе
которого лежит Object Pascal.
3. Embarcadero Delphi
• Embarcadero Delphi, ранее Borland Delphi и CodeGear
Delphi, — интегрированная среда разработки ПО для
Microsoft Windows на языке Delphi (ранее носившем
название Object Pascal), созданная первоначально
фирмой Borland и на данный момент принадлежащая
и
разрабатываемая
Embarcadero
Technologies.
Embarcadero
Delphi
является
частью
пакета
Embarcadero RAD Studio.
4. RAD
• RAD (от англ. rapid application development — быстрая
разработка приложений) — концепция создания средств
разработки программных продуктов, уделяющая особое
внимание быстроте и удобству программирования,
созданию технологического процесса, позволяющего
программисту
максимально
быстро
создавать
компьютерные программы.
5.
Этапы разработки приложения
1. Постановка задачи, изучение предметной области,
построение модели (математической, информационной);
2. Проектирование ООП-приложения:
–
–
–
3.
4.
5.
6.
разработать эскизы того, что должно появляться на экране
компьютера,
написать сценарий работы будущей программы,
разработать алгоритмы процедур, реализующих
предусмотренные в сценарии действия;
Разработка интерфейса пользователя;
Программирование приложения;
Тестирование и отладка;
Разработка документации.
6. Этапы разработки программы
ИНТЕРФЕЙС СРЕДЫ DELPHI
7. Этапы реализации проекта в среде RAD
После запуска Delphi на экране отображаются несколько окон:
1.
2.
3.
4.
5.
6.
Главное окно программы,
Окно Конструктора формы,
Окно Инспектора объектов,
Окно Палитры компонентов,
Окно Дерева компонентов,
Окно Менеджера проектов.
8.
Главное окно
• Главное окно осуществляет основные функции
управления проектом создаваемой программы. В нем
находится основное меню и панели инструментов.
• Примечание Главное окно остается открытым все время
работы IDE. Закрывая его, вы тем самым закрываете
Delphi и все открытые в нем окна.
9. Интерфейс среды delphi
Окно конструктора формы
• Окно конструктора (проектировщика) формы – главное место,
где происходит сборка программы из компонентов, содержащихся
в палитре компонентов. Сама форма – это уже готовая к
исполнению программа. По ходу работы система формирует в
окне Code (Редактора кодов) текст программы на языке Object
Pascal, связанной с формой.
• Code Editor (Редактор кода) представляет собой текстовый
редактор с подсветкой синтаксиса языка программирования.
10.
Окно Палитры компонентов
• Tool Palette (Палитра компонентов)
представляет собой множественные
тематические страницы, на которых
располагаются компоненты. Все компоненты
разделены на категории, которые можно для
удобства сворачивать и разворачивать.
• Работа с палитрой компонентов очень
проста. В режиме редактирования формы
можно дважды нажать левой кнопкой мыши
на интересующем компоненте, и он будет
добавлен на форму, или перетащить объект
на форму, зажав левую кнопку мыши.
11. Главное окно
Окно Инспектора объектов
Object Inspector (Инспектор объектов) — отображает
свойства активного компонента или самой формы. Имя
активного компонента находится под заголовком
панели.
Эта панель имеет две вкладки – Properties (Свойства) и
Еvents (События).
На первой вкладке (Properties) постоянно
отображаются все доступные свойства выбранного
компонента. В левой колонке содержится список, а в
правой – текущие значения по умолчанию.
На второй закладке (Events) отображаются возможные
обработчики событий для выбранного компонента. В
левой колонке – названия, а в правой –
соответствующие свойства или процедуры.
12. Окно конструктора формы
Окно Дерево компонентов
• На панели Object TreeView (Дерево компонентов)
представлен полный перечень всех компонентов вашего
проекта. Здесь легко найти компонент даже, если он
перекрывается другим компонентом.
13. Окно Палитры компонентов
Окно Менеджера проектов
• Файлы, образующие приложение, формы и модули – собраны в
проект. Project Manager (Менеджер проектов) показывает
списки файлов и модулей приложения и позволяет
осуществлять навигацию между ними.
• Структура проекта выполнена в виде иерархичного дерева.
Корнем дерева проектов является Project Group (Группа
проектов). Она объединяет в себе один или более проектов.
Каждый проект, в свою очередь, содержит файлы кода,
заголовочные файлы, файлы ресурсов и прочее.
14. Окно Инспектора объектов
15. Окно Дерево компонентов
Иерархия групп компонентов
16. Окно Менеджера проектов
17.
18. Иерархия групп компонентов
Основные компоненты
Вкладка Standart
19.
Вкладка Standart
Вкладка Additional
20.
21. Основные компоненты
22.
23.
24.
25.
Некоторые события Delphi
• onClick — возникает при щелчке мышкой на компоненте
• onDblClick — возникает при двойном щелчке мышкой по компоненту;
• onKeyDown — когда при нажатии на кнопку на клавиатуре она
оказалась в нижнем положении;
• onKeyUp — когда при отпускании клавиатурной кнопки она оказалась в
верхнем положении;
• onKeyPress — возникает при нажатии на клавиатурную кнопку. От
событий onKeyDown иonKeyUp оно отличается типом используемого
параметра Key ;
• onMouseDown — когда при нажатии кнопки мышки она оказалась в
нижнем положении;
• onMouseUp — когда при отпускании кнопки мышки она оказалась в
верхнем положении;
• onMouseMove — возникает при перемещении указателя мышки над
компонентом.
• onChange – возникает при изменении текста компонента Edit
• onEnter – возникает, когда объект получает фокус ввода
• onExit — возникает, когда компонент теряет фокус ввода;
26.
Создание и сохранение проекта
• Команда File/New/VCL Forms Aplication создает новый
проект
• Сохранить проект можно так же с помощью команды
File/Save Project As..
• Для каждого нового проекта лучше отводить отдельную
папку, т.к. проекты включают множество файлов. Это
позволит вам упростить процесс копирования проекта на
другой компьютер.
• Названия файлов должны состоять из букв английского
алфавита, символа подчеркивания и арабских цифр,
первым символом не может быть цифра. Пробелы –
недопустимы.
27.
Какие файлы у нас сохранились?
Главный файл нашего
проекта
Файл нашей
формы с
описанием ее
свойств
Файл модуля с
расширением *.pas –
здесь исходный код
нашей программы
Дополнительные
файлы ресурсов,
которые Delphi
создает
автоматически
28. Некоторые события Delphi
ОБЩАЯ ОРГАНИЗАЦИЯ
ПРОГРАММЫ В DELPHI
29. Создание и сохранение проекта
Общая организация программы в
Delphi
• Программа создаваемая в среде Delphi в
процессе проектирования приложения,
основана на модульном принципе.
• В среде Delphi разрабатывается проект –
набор файлов, из которых состоит
приложение.
30.
Состав проекта
В любой проект входит файлы:
• project1.dpr – главный файл проекта, формируется системой при
создании нового приложения;
• unit1.pas – первый модуль (unit) программы, который автоматически
появляется в начале работы;
• unit1.dfm – файл описания формы, используется для сохранения
информации о внешнем виде главной формы;
• project1.res – файл ресурсов, в нём хранятся иконки, растровые
изображения, курсоры. Как минимум, содержит иконку приложения;
• project1.dof – файл опций, является текстовым файлом для сохранения
установок, связанных с данным проектом (например директив
компилятора);
• project1.cfg – файл конфигурации, содержит информацию о состоянии
среды.
31. Общая организация программы в Delphi
Структура головной программы
приложения Delphi
• Главный файл проекта представляет собой текстовый
файл, содержащий программный код, записанный на
языке Object Pascal. Этот файл подключает все
используемые программные модули и содержит
операторы для запуска приложения.
32. Общая организация программы в Delphi
Структура головной программы
приложения Delphi
Программа
с ключевого
В разделеначинается
uses перечисляются
все
program Project1;
слова
директива
program,
компилятора,
после которого
которая
модули,
загружаемые
uses
указывается
связывает
имяПервый
программы.
с исполняемым
Оно
программой.
модуль
совпадает
модулем
с файлы
именем
ресурсов
файла, вWindows
котором
Forms
является
системным,
а
Vcl.Forms,
был
(.Dfm,
сохранен
.Res).
проект.
По умолчанию
Это же имя
для
следующие
– модулями
присваивается
файлов ресурсов
исполняемому
используется
файлу
разработанных
пользователем
Unit1 in ‘Unit1.pas’ ;>;
приложения.
По умолчанию
.Res.
форм. расширение
используется
Project1.
Операторимя
Application.Initialize
инициализирует приложение.
begin
Application.CreateForm создает
объекты формы.
Application.Initialize;
Application.Run начинает
Application.CreateForm(TForm1, Form1);
выполнение приложения..
Application.Run;
end.
33. Состав проекта
Структуры модуля приложения
Delphi
• Текст программ хранится в модулях, название которого
должно совпадать с именем файла. Модуль состоит из
трех разделов: интерфейса, реализации и
инициализации. Структура модуля приложения Delphi:
Unit Unitl;
Название модуля (Это название используется в
предложении Uses при подключении модуля к
программе).
Interface
Раздел интерфейса
…
Implementation Раздел реализации (исполняемая часть)
…
begin
Раздел инициализации
…
end.
34. Структура головной программы приложения Delphi
Раздел интерфейса
• Начинается ключевым словом Interface.
• Сообщает компилятору, какая часть модуля является
доступной для других модулей программы.
• Здесь могут размещаться списки подключаемых модулей,
объявления типов, констант, переменных, заголовки
функций и процедур, к которым будет доступ из других
модулей. Иными словами, в этом разделе перечисляется,
все то, что должно быть видимым из программы, которая
его использует.
35. Структура головной программы приложения Delphi
unit1.pas
заголовок
модуля проекта
– Unit 1
Интерфейсная часть
(объявление всех
объектов модуля –
типов, переменных …)
36. Структуры модуля приложения Delphi
unit1.pas
Это автоматически
подключаемые
Delphi модули
объявление
объектов, которые
используются в
нашем проекте:
форма (TForm1),
Button1 и Button2, а
также процедуры
обработки событий
нажатия на эти
кнопки:
Button1.Click и
Button2.Click
37. Раздел интерфейса
unit1.pas
закрытый раздел класса
Сюда могут помещаться
объявления переменных,
функций и процедур,
включаемых в класс
формы, но не доступных
для других модулей
Открытый раздел класса
Сюда могут помещаться
объявления переменных,
функций и процедур,
включаемых в класс
формы и доступных для
других модулей
Сюда могут помещаться
объявления типов, констант,
переменных, функций и
процедур, к которым будет
доступ из других модулей, но
которые не включаются в класс
формы
38.
Раздел реализации
• Начинается ключевым словом Implementation и содержит
объявления локальных переменных, процедур и функций,
поддерживающих работу формы.
• Директива указывает компилятору, что в раздел
реализации нужно вставить инструкции установки значений
свойств формы, которые находятся в файле с расширением
.dfm, имя которого совпадает с именем модуля.
• Далее в разделе реализации могут помещаться предложения
uses, объявления типов, констант, переменных, к которым не
будет доступа из других модулей. Здесь же располагаются все
тексты процедур и функций, объявленных в разделе interface.
Заголовки процедур и функций могут полностью совпадать с
заголовками из интерфейсной части или могут отличаться от
них полным отсутствием параметров. Если в этой части набран
текст функции или процедуры, не представленной в Interface, то
данная функция или процедура будет локальной.
39.
unit1.pas
Исполняемая часть модуля,
содержащая основной код
и отражающая логику и
алгоритм работы
программы
Процедура обработки
первой кнопки
Процедура обработки
второй кнопки
40.
41. Раздел реализации
Раздел инициализации
• Раздел
инициализации
позволяет
выполнить
инициализацию переменных модуля. Располагается после
раздела реализации между Begin и End.
• В этой части помещают операторы, которые должны
выполняться один раз при первом обращении к модулю
(после ключевого слова Initialization). Или операторы,
выполняемые при любом завершении модуля (после
ключевого слова Finalization). Эта часть является
необязательной. На практике данный подход используется
редко, поэтому обычно после Implementation сразу
ставится End с точкой (без Begin).
42.
Файл формы
В коде мы видим описание формы и
объектов, находящихся на ней
Описание формы и ее
свойств
Описание свойств
первой кнопки
Описание свойств
второй кнопки
Самостоятельно
разберитесь, что означают строки кода
для формы и кнопок
43. Структура событийной процедуры
Хорошее приложение
Можно считать хорошим приложение, которое:
• имеет простой, удобный, интуитивно понятный
интерфейс, со всеми присущими Windows атрибутами:
окнами, кнопками, меню и т.д.;
• управляется как мышью, так и клавиатурой;
• отказоустойчиво, корректно обрабатывает любые
ошибки пользователя;
• работает быстро;
• имеет хорошую справочную систему;
• обеспечивает обмен данными с другими
приложениями;
• может (при необходимости) использовать средства
мультимедиа;
• может работать с базами данных;
• разрабатывается быстро.
44. Раздел инициализации
Разработка интерфейса пользователя.
При разработке интерфейса пользователя необходимо
соблюдать ряд правил.
1. При проектировании окон (форм) ввода данных:
• для команд всегда следует создавать клавишные
эквиваленты (при этом необходимо там, где это уместно,
сохранять привычные эквиваленты), не заставляя
пользователя применять исключительно мышь;
• расположение элементов на главной форме должно быть
согласовано с задачами пользователя;
• при вводе данных должна присутствовать заметная, но
ненавязчивая связь с пользователем (например,
синтаксический контроль и, если возможно, исправление
ошибок и опечаток);
• для нескольких разных форм ввода не следует использовать
существенно отличающиеся интерфейсы.
45. Файл формы
Разработка интерфейса пользователя.
2. При создании меню:
• следовать стандартным соглашениям о расположении
пунктов меню, принятым в Windows;
• группировать пункты меню в логическом порядке и по
содержанию;
• для группировки пунктов в раскрывающихся меню
использовать разделительные линии;
• избегать избыточных меню;
• использовать клавиатурные эквиваленты команд и
«горячие» клавиши;
• помещать на панель инструментов часто используемые
команды меню.
46. Хорошее приложение
Разработка интерфейса пользователя.
3. При работе приложения в процессе ожидания следует
информировать пользователя о ходе работы (например,
с помощью индикатора состояния выполнения задания).
4. Общие дизайнерские требования: сочетаемость цвета
фона приложения и цвета выводимого на него текста,
небольшое количество используемых цветов и др.
47. Разработка интерфейса пользователя.
Компиляция и выполнение проекта
• Компиляция
проекта
выполняется
командой
Project|Compile ProjectName
или
использованием
комбинации клавиш Ctrl+F9. При этом компилируются все
исходные модули, содержимое которых изменялось
после последней компиляции: для каждого программного
модуля создаётся файл с расширением dcu.
Затем
компилируется файл проекта и компонуется (собирается)
из dcu-модулей исполняемый файл, имя которого совпадает
с именем файла проекта.
• Готовый
к
использованию
файл
может
быть
приложением (*.exe) или динамически загружаемой
библиотекой (*.dll).
48. Разработка интерфейса пользователя.
Компиляция и выполнение проекта
Готовый проект можно запустить на выполнение.
Выполнение приложения из среды Delphi задаётся
командой Run|Run (клавишей F9 или кнопкой с зелёным
треугольником) и имеет следующие особенности:
• нельзя запустить несколько копий приложения;
• при возникновении исключительных ситуаций сначала
выводятся сообщения Delphi, а затем – приложения;
• для аварийного завершения приложения (например при
зацикливании) необходимо выполнить команду
Run|Program Reset;
• для продолжения разработки проекта приложение надо
закрыть.
Источник: ppt-online.org
Delphi 5. Руководство разработчика. Том 2. Разработка компонентов и работа с базами данных
«Delphi 5. Руководство разработчика» специально предназначено для разработчиков программного обеспечения в среде языка программирования Delphi. В содержании книги можно увидеть большое количество примеров исходного кода разных рабочих приложений по каждой теме, также туда входят и примеры приложений, созданных для среды клиент-сервер. Примеры приложений подробно описаны, что должно облегчать процесс обучения созданию эффективных функциональных приложений.
Второй том этой книги раскрывает тему разработки собственных компонентов Delphi (расширения оболочки Windows, приложения для работы с базами данных,элементы управления ActiveX). В книге освещены современные технологии, например, разработка приложений для World Wide Web и распределенных многоуровневых приложений.
Источник: www.for-stydents.ru