Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по Информатике 2011.doc
Скачиваний:
6
Добавлен:
04.11.2018
Размер:
557.06 Кб
Скачать

3.3.1.2. Назначение файла (AssignFile)

Объявление файловой переменной задает только тип компонентов файла. Для того чтобы программа могла выводить данные в файл или считывать данные из файла, необходимо указать конкретный файл, т. е. задать имя файла. Имя файла задается вызовом процедуры AssignFile, связывающей файловую переменную с конкретным файлом. Описание процедуры AssignFile выглядит следующим образом:

AssignFile(var f, ИмяФайла:string)

Имя файла задается согласно принятым в Windows правилам. Оно может быть полным, т. е. состоять не только непосредственно из имени файла, но и включать путь к файлу.

Ниже приведены примеры вызова процедуры AssignFile:

AssignFile(f,’a:\result.txt’);

AssignFile(f,'\students\ivanov\korni.txt');

fname:=('otchet.txt') ;

AssignFile(f,fname);

3.3.1.3. Открытие файла для вывода (Rewrite, Append).

Перед выводом в файл его необходимо открыть. Если программа, форми­рующая выходной файл, уже использовалась, то возможно, что файл с ре­зультатами работы программы уже есть на диске. Поэтому программист должен решить, как поступить со старым файлом: заменить старые данные новыми или новые данные добавить к старым. Способ использования ста­рого варианта определяется во время открытия файла.

Возможны следующие режимы открытия файла для записи в него данных:

  • Перезапись (запись нового файла поверх существующего или создание нового файла)

  • Добавление в существующий файл

Для того чтобы открыть файл в режиме создания нового файла или замены существующего, необходимо вызвать процедуру Rewrite (f), где f — файло­вая переменная типа TextFiie.

Для того чтобы открыть файл в режиме добавления к уже существующим данным, находящимся в этом файле, необходимо вызвать процедуру Append (f), где f — файловая переменная типа TextFiie.

Нижеследующий листинг содержит процедуру, которая запускается нажатием кнопки Button1. Она открывает файл в режиме создания нового или заме­щения существующего файла и записывает в него 3 строки.

procedure TFoml.Button1Click(Sender: TObject) ;

var

f: TextFile;

i: integer;

begin

AssignFile(f,'a:\test.txt');

Rewrite(f) ;

for i:=l to 3 do writeln(f,'Строка ',i);

CloseFile(f);

end;

В результате выполнения приведенной выше процедуры на диске А: появля­ется файл test. txt. Вот его распечатка:

Строка 1

Строка 2

Строка 3

В следующем листинге приведена процедура, которая запускается нажатием кнопки Button2. Она открывает файл test. txt, созданный процедурой Tform1.Button1Click, и добавляет в него две строки.

procedure Tform1.Button2Click (Sender: TObject);

var

f:TextFile;

i:integer;

begin

AssignFile(f,'a:\test.txt') ;

Append(f);

for i:=3 to 5 do writeln(f,'Строка ',i);

CloseFile(f);

end;

В результате выполнения программы содержимое файла test. txt изменяет­ся:

Строка 1

Строка 2

Строка 3

Строка 4

Строка 5

3.3.1.4. Вывод в файл (write, writeln).

Непосредственно вывод в текстовый файл осуществляется при помощи ин­струкций write или writeln. В общем виде эти инструкции записываются следующим образом:

write(ФайловаяПеременная,СписокВывода) writeln(ФайловаяПеременная, СписокВывода)

где ФайловаяПеременная переменная, идентифицирующая файл, в который выполняется вывод;

СписокВывода разделенные запятыми имена переменных, значения кото­рых надо вывести в файл. Помимо имен переменных в список вывода мож­но включать строковые константы. Например, если переменная f является переменной типа TextFiie, то инструкция вывода значений переменных xl и х2 в файл может быть такой:

write(f, 'Корни уравнения ',xl,х2);

Различие между инструкциями write и wnteln состоит в том, что инструк­ция writeln после вывода всех значений, указанных в списке вывода, запи­сывает в файл символ "новая строка".