Работа с файлами.
Файл – это именованная структура данных, представляющая собой последовательность элементов данных одного типа. Файл должен быть объявлен в разделе описания переменных.
Формат записи: Имя:file of ТипЭлементов Например:
res:file of char; // файл символов
f:file of
integer; //файл
целых чисел
fname:TextFile; // символьный или текстовый файл
Для того чтобы программа выводить или считывать из файла, необходимо указать конкретный файл, т.е. связать файловую переменную с файлом(задать имя файла).
Формат записи:
AssignFile
(var f, ИмяФайла:string) Например:
AssignFile
(f, ‘a:result.txt’);
name:=(‘otchet.txt’); AssignFile (f, name);
Для работы с файлами используются следующие процедуры:
Write (f, СписокВывода); Writeln (f, СписокВывода); // запись в файл
read (f, СписокВывода); readln (f, СписокВывода); // чтение из файла
Rewrite(f); // открыть для перезаписи
Append(f); // открыть для добавления
Reset(f); // открыть файл для чтения
CloseFile(f); // закрыть файл
Задача 1. Используя в качестве примера приложение
«Работа с файлами» из папки «Задание», составить программу записи – чтения
текста в(из) файл.
Код программы:
procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
buf: String[80]; // буфер
для чтения из файла
begin fName :=
Edit1.Text;
AssignFile(f, fName);
{$I-}
Reset(f); // открыть для чтения
{$I+}
if IOResult <> 0 then
begin MessageDlg('Ошибка доступа к файлу ' + fName,
tError,[mbOk],0);
exit;
end; // чтение из файла
while
not EOF(f) do
begin readln(f, buf); // прочитать строку из файла
Memo1.Lines.Add(buf); // добавить строку в поле Memo1
end;
CloseFile(f); //
закрыть файл
end; //
запись в файл
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; // файл
fName: String[80]; // имя файла
i: integer;
begin fName
:= Edit1.Text;
AssignFile(f, fName);
Rewrite(f); // открыть для перезаписи // запись в файл
for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля
writeln(f, Memo1.Lines[i]);
CloseFile(f); // закрыть файл
MessageDlg('Данные записаны в файл ',mtInformation,[mbOk],0);
end;