Работа с файлами в среде DELPHI



Объявление файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..2
Назначение файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...3
Вывод в файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
Открытие файла для вывода ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..4
Ошибки открытия файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .6
Закрытие файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9
Пример программы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...9
Ввод из файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .12
Открытие файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..12
Чтение данных из файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14
Чтение чисел ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14
Чтение строк ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .15
Конец файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .16
Список литературы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...20
Файл — это именованная структура данных, представляющая собой последовательность элементов данных одного типа, причем количество элементов последовательности практически не ограничено. В первом приближении файл можно рассматривать как массив переменной длины неограниченного размера.
Как и любая структура данных (переменная, массив) программы, файл должен быть объявлен в разделе описания переменных. При объявлении файла указывается тип элементов файла.
Объявление файловой переменной задает только тип компонентов файла. Для того чтобы программа могла выводить данные в файл или считывать данные из файла, необходимо указать конкретный файл, т. е. связать файловую переменную с конкретным файлом (задать имя файла).
Имя файла задается вызовом процедуры AssignFiie, связывающей файловую переменную с конкретным файлом.
1. В.Фараонов «Программирование в среде DELPHI» «ПИТЕР»2006 год.

Дисциплина: Информатика, Программирование, Базы данных
Тип работы:  Реферат
Бесплатно:  Антиплагиат
Объем: 16 страниц
В избранное:   
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РК
КАЗАХСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Т.РЫСКУЛОВА
ФАКУЛЬТЕТ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКИЙ

КАФЕДРА ПМиАИС

КУРСОВАЯ РАБОТА

ПО ДИСЦИПЛИНЕ: ПРОГРАМИРОВАНИЯ НА АЛГОРИТМИЧЕСКИХ ЯЗЫКАХ

ТЕМА: Работа с файлами в среде DELPHI

ВЫПОЛНИЛ: СТУДЕНТ 3-ГО КУРСА

ФАКУЛЬТЕТА ИЭ

ГРУППЫ №307

ИВИЗОВ МУХПУЛ
РУКОВОДИТЕЛЬ:

к.э.н., доцент, ЖАНДАУЛЕТОВ У.И

Содержание:
Объявление файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..2
Назначение файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... .3
Вывод в файл ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
Открытие файла для вывода ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..4
Ошибки открытия файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .6
Закрытие файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ..9
Пример программы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... .9
Ввод из файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ...12
Открытие файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... 12
Чтение данных из файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14
Чтение чисел ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 14
Чтение строк ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ...15
Конец файла ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ...16
Список литературы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 20

Объявление файла
Файл — это именованная структура данных, представляющая собой
последовательность элементов данных одного типа, причем количество
элементов последовательности практически не ограничено. В первом
приближении файл можно рассматривать как массив переменной длины
неограниченного размера.
Как и любая структура данных (переменная, массив) программы, файл
должен быть объявлен в разделе описания переменных. При объявлении
файла указывается тип элементов файла.
В общем виде объявление файла выглядит так: Имя:file of ТипЭлементов;
Примеры:
res: file of char; файл символов
koef: file of real; файл вещественных чисел
f: file of integer; файл целых чисел
Файл, компонентами которого являются данные символьного типа,
называется символьным, или текстовым. Описание текстового файла в общем
виде выглядит так:
Имя:TextFile;
где:
• имя — имя файловой переменной;
• TextFile — обозначение- типа, показывающее, что Имя — это файловая
переменная, представляющая текстовый файл.
Назначение файла
Объявление файловой переменной задает только тип компонентов файла. Для
того чтобы программа могла выводить данные в файл или считывать данные
из файла, необходимо указать конкретный файл, т. е. связать файловую
переменную с конкретным файлом (задать имя файла).
Имя файла задается вызовом процедуры AssignFiie, связывающей файловую
переменную с конкретным файлом.
Описание процедуры AssignFiie выглядит следующим образом:
AssignFiie(var f, ИмяФайла: string)
Имя файла задается согласно принятым в Windows правилам. Оно может быть
полным, т. е. состоять не только непосредственно из имени файла, но и
включать путь к файлу (имя диска, каталогов и подкаталогов).
Ниже приведены примеры вызова процедуры AssignFiie:
AssignFile(f, 'a:\result.txt');
AssignFile(f, '\students\ivanov\korni.txt');
fname:=('otchet.txt'); AssignFiie(f,fname);
Вывод в файл
Непосредственно вывод в текстовый файл осуществляется при помощи
инструкции write или writeln. В общем виде эти инструкции записываются
следующим образом:
write (ФайловаяПеременная, СписокВывода) ;
writeln(ФайловаяПеременная, СписокВывода);
где:
• ФайловаяПеременная — переменная, идентифицирующая файл, в который
выполняется вывод;
• СписокВывода -- разделенные запятыми имена переменных, значения которых
надо вывести в файл. Помимо имен переменных в список вывода можно
включать строковые константы.
Например, если переменная f является переменной типа TextFiie, то
инструкция вывода значений переменных x1 и х2 в файл может быть такой:
write(f, 'Корни уравнения', xl, х2);
Различие между инструкциями write и writeln состоит в том, что
инструкция writeln после вывода всех значений, указанных в списке
вывода, записывает в файл символ "новая строка".
Открытие файла для вывода
Перед выводом в файл его необходимо открыть. Если программа,
формирующая выходной файл, уже использовалась, то возможно, что файл с
результатами работы программы уже есть на диске. Поэтому программист
должен решить, как поступить со старым файлом: заменить старые данные
новыми или новые данные добавить к старым. Способ использования старого
варианта определяется во время открытия файла.
Возможны следующие режимы открытия файла для записи в него данных:
• перезапись (запись нового файла поверх существующего или создание
нового файла);
• добавление в существующий файл.
Для того чтобы открыть файл в режиме создания нового файла или замены
существующего, необходимо вызвать процедуру Rewrite(f), где f —
файловая переменная типа TextFile.
Для того чтобы открыть файл в режиме добавления к уже существующим
данным, находящимся в этом файле, нужно вызвать процедуру Append (f),
где f — файловая переменная типа TextFile.
На рис. 7.1 приведено диалоговое окно программы, которая выполняет
запись или добавление в текстовый файл.

Рис. 7.1. Диалоговое окно программы записи-добавления в файл
В листинге 7.1 приведена процедура, которая запускается нажатием
командной кнопки Записать. Она открывает файл в режиме создания нового
или замещения существующего файла и записывает текст, находящийся в
поле компонента Memo1.
Имя файла нужно ввести во время работы в поле Editl. Можно задать
предопределенное имя файла во время разработки формы приложения. Для
этого надо присвоить значение, например test.txt, свойству Edit1.Text.
Листинг 7.1. Создание нового или замещение существующего файла
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; файл
fName: String[80]; имя файла
i: integer;
begin
fName := Editl.Text;
AssignFile(f, fName);
Rewrite(f); открыть для перезаписи
запись в файл
for i: =0 to Memol.Lines.Count do строки нумеруются с нуля
writeln(f, Memol.Lines[i]);
CloseFile(f); закрыть файл
MessageDlg('Данные ЗАПИСАНЫ в файл ',mtlnformation,[mbOk],0);
end;
В листинге 7.2 приведена процедура, которая запускается нажатием
командной кнопки Добавить. Она открывает файл, имя которого указано в
поле Edit1, и добавляет в него содержимое поля Memo1.
Листинг 7.2. Добавление в существующий файл
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; файл
fName: String[80];. имя файла
i: integer; begin
fName := Editl.Text;
AssignFile(f, fName);
Append(f); открыть для добавления
запись в файл
for i:=0 to Memo1.Lines.Count do строки нумеруются с нуля
writeln(f, Memo1.Lines[i]);
CloseFile(f); закрыть файл
MessageDlg('Данные ДОБАВЛЕНЫ в файл ',mtInformation,[mbOk],0);
end;
Ошибки открытия файла
Попытка открыть файл может завершиться неудачей и вызвать ошибку
времени выполнения программы. Причин неудачи при открытии файлов может
быть несколько. Например, программа попытается открыть файл на гибком
диске, который не готов к работе (не закрыта шторка накопителя, или
диск не вставлен в накопитель). Другая причина — отсутствие
открываемого в режиме добавления файла (файла нет — добавлять некуда).
При запуске программы из Delphi в случае ошибки во время открытия файла
возникает исключение, и на экране появляется диалоговое окно с
сообщением (рис. 7.2).

Рис. 7.2. Пример сообщения об ошибке открытия файла (программа запущена
из Delphi)
Если программа запускается из Windows, то окно с сообщением об ошибке
выглядит иначе (рис. 7.3).

Рис. 7.3. Пример сообщения об ошибке открытия файла . (программа
запущена из Windows)
Программа может взять на себя задачу контроля за результатом выполнения
инструкции открытия файла. Сделать это можно, проверив значение функции
IOResult (input-Output Result — результат вводавывода). Функция
IOResuit возвращает 0, если операция вводавывода завершилась успешно;
в противном случае — код ошибки (не ноль).
Для того чтобы программа смогла проверить результат выполнения операции
вводавывода, нужно разрешить ей это делать. Для этого надо перед
инструкцией вызова процедуры открытия файла поместить директиву
компилятору — строку {$I-}, которая запрещает автоматическую обработку
ошибок вводавывода. Эта директива сообщает компилятору, что программа
берет на себя контроль ошибок. После инструкции открытия файла следует
поместить директиву {$I+}, восстанавливающую режим автоматической
обработки ошибок вводавывода.
На рис. 7.4 приведена блок-схема алгоритма открытия файла для
добавления, обеспечивающего создание файла (и тем самым устраняющего
ошибку, возникающую при попытке открыть несуществующий файл) в случае,
если открываемого для добавления файла на диске еще нет.

Рис. 7.4. Алгоритм открытия файла с обработкой возможной ошибки
Ниже приведен фрагмент программы, реализующий приведенный выше алгоритм
открытия файла.
AssignFile(f,filename);
{$I-}
Append(f) открыть для добавления
{$I+}
if IOResult 0 ошибка открытия
then Rewrite(f); открыть для записи
здесь открыт существующий или новый файл
Закрытие файла
Перед завершением работы программа должна закрыть все открытые файлы.
Это делается вызовом процедуры close. Процедура close имеет один
параметр — имя файловой переменной. Пример использования процедуры:
Close(f).
Пример программы
Следующая программа ведет простую базу данных. При каждом ее запуске на
экране появляется диалоговое окно (рис. 7.5), в поля которого
пользователь может ввести дату и температуру воздуха.

Рис. 7.5. Диалоговое окно программы База данных "Погода"
Дата вводится в поле Edit1, температура — в поле Edit2. Текст программы
приведен в листинге 7.3.
Листинг 7.3, Простая база данных (запись в файл)
unit pogoda_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; дата
Edit2: TEdit; температура
Button1: TButton; кнопка Добавить
Label1: TLabe1;
Label2: TLabe1;
procedure FormActivate(Sender: TObject);
procedure ButtonlClick(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction); private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
DBNAME = 'a:\pogoda. db';
var
db: TextFile; файл — база данных
procedure TForm1.FormActivate(Sender: TObject);
begin
AssignFile(db, DBNAME);. {$I-}
Append(db); if IOResult = 0 then
begin
Edit1.Text := DateToStr(Date); получить текущую дату
Edit2.SetFocus; курсор в поле Edit2
end
else begin
Rewrite(db); if IOResult 0 then begin
сделать недоступными поля ввода и командную кнопку
Edit1.Enabled := False; Edit2.Enabled := False;
Buttonl.Enabled := False; ShowMessage('Ошибка создания '+DBNAME);
end;
end;
end;
щелчок на кнопке Добавить
procedure TForml.Button1Click(Sender: TObject);
begin
if (Length(edit1.text)=0) or (Length(edit2.text)=0)
then ShowMessage('Ошибка ввода данных.'
+#13+'Bce поля должны быть заполнены.')
else writeln(db, editl.text,' ',edit2.text);
end;
Событие OnClose возникает при закрытии формы
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(db); закрыть файл БД
end;
end.
Файл базы данных открывает процедура FormActivate, которая обрабатывает
событие onActivate. Событие OnActivate возникает в момент активизации
формы, поэтому процедура запускается автоматически, при активизации
формы приложения. Если операция открытия файла завершается успешно, то
в поле Editi записывается текущая дата. Информация о текущей дате
возвращает функция Date. Для преобразования возвращаемого функцией Date
значения (числа типа Double) в удобную для восприятия форму
используется функция Dateiostr. После записи даты в поле Editi
процедура обработки события onActivate с применением метода setFocus
устанавливает курсор в поле ввода температуры. Если в процессе открытия
или создания нового файла возникает ... продолжение

Вы можете абсолютно на бесплатной основе полностью просмотреть эту работу через наше приложение.
Похожие работы
Использование объектно-ориентированного программирования при создании приложений для работы с базами данных
Создание автоматизированной информационной системы для организации выдачи кредита банка
Разработка ЭИС страхового менеджера
Автоматизация учета продаж продукции ТОО «Бразер»
Проектирование ЭИС по анализу хозяйственной деятельности ТОО «Комек»
Ломбард
Разработка информационной системы «Гостиница»
Разработка ЭИС «Управление кредитными операциями»
Использование Android Studio для создания мобильных приложений
Автоматизация учета библиотеки колледжа
Дисциплины