1.Цель работы:
Целью работы является изучение приемов работы с переменными файлового типа.
2. Теоретические сведения
Под файлом понимается либо именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного "виртуального" диска ), либо логическое устройство - потенциальный источник или приемник информации.
Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:
ASSIGN (<ф.п.>, <имя файла или л.у.>);
Здесь
<ф.п.> - файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа);
<имя файла или л.у.> - текстовое выражение, содержащее имя файла или логическое устройство.
Если имя файла задается в виде пустой строки, например, ASSIGN(f,") , то в зависимости от направления обмена данными файловая переменная связывается со стандартным файлом INPUT или OUTPUT.
Для чтения файл инициируется с помощью стандартной процедуры RESET:
RESET (<ф.п.>) ;
Здесь
<ф.п.> - файловая переменная, связанная ранее процедурой ASSIGN с уже существующим файлом или логическим устройством - приемником информации.
В Турбо Паскале разрешается обращатся к типизированным файлам, открытым процедурой RESET (т.е. для чтения информации), с помощью процедуры WRITE (т.е. для записи информации). Такая возможность позволяет легко обновлять ранее созданные типизированные файлы и при необходимости расширять их. Для текстовых файлов, открытых процедурой RESET, нельзя использовать процедуру WRITE или WRITELN.
Стандартная процедура
REWRITE (<ф.п.>)
инициирует запись информации в файл или в логическое устройство, связанное ранее с файловой переменной. Процедурой REWRITE нельзя инициировать запись информации в ранее существовавший дисковый файл: при выполнении этой процедуры старый файл уничтожается и никаких сообщений об этом в программу не передается. Новый файл подготавливается к приему информации и его указатель принимает значение 0.
Стандартная процедура
APPEND (<ф.п.>)
инициирует запись в ранее существовавший текстовый файл для его расширения, при этом указатель файла устанавливается в его конец. Процедура APPEND применима только к текстовым файлам, т.е. их файловая переменная должна иметь тип TEXT. Процедурой APPEND нельзя инициировать запись в типизированный или нетипизированный файл. Если текстовый файл ранее уже был открыт с помощью RESET или REWRITE, использование процедуры APPEND приведет к закрытию этого файла и открытию его вновь, но уже для добавления записей.
Процедура CLOSE закрывает файл, однако связь файловой переменной с именем файла, установленная ранее процедурой ASSIGN, сохраняется.
Формат сообщения:
CLOSE(<ф.п.>)
При создании нового или расширении старого файла процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге.
Функции процедуры CLOSE выполняются автоматически по отношению ко всем открытым файлам при нормальном завершении программы. Поскольку связь файла с файловой переменной сохраняется, файл можно повторно открыть без дополнительного использования процедуры ASSIGN.
3.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Ознакомиться с теоретическими сведениями данной работы.
2. Ответить на контрольные вопросы.
3. Выполнить свой вариант задания.
4.ОФОРМЛЕНИЕ ОТЧЕТА
Отчет о работе должен содержать номер, название и цель работы, ответы на контрольные вопросы, текст программы и результат выполнения программы.
5.КОНТРОЛЬНЫЕ ВОПРОСЫ
1. В какое место файла можно добавлять новые элементы:
- в начало,
- в середину,
- в конец,
- куда угодно,
- никуда?
2. Если не переписывать файл заново, то значения каких его элементов можно менять:
- только первого;
- только последнего;
- каких угодно;
- никаких.
3. Если не переписывать файл заново, то какие из его элементов можно удалять:
- только первый;
- только последний;
- какие угодно;
- никакие.
4. Определить содержимое файла f после выполнения следующих операторов:
rewrite(f);
for i:=1 to 3 do write(f,i*2);
close(f);
5. Определить содержимое файла f после выполнения следующих операторов:
rewrite(f);
for i:=3 downto 1 do write(f,i);
close(f);
i:=5;
append(f);
write(f,i);
close(f);
6. Определить содержимое файла f после выполнения следующих операторов:
i:=5;
rewrite(f);
write(f,i);
close(f);
rewrite(f);
if eof(f) then write(f,i) else write(f,i-5);
close(f);
6.ЗАДАНИЕ
№ задания |
1 |
2 |
3 |
4 |
5 |
1 |
2 |
3 |
4 |
5 |
1 |
2 |
3 |
4 |
5 |
№ по журналу |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Состоит из двух частей:1-общая для всех, 2-по варианту.
1). Организовать процедуру, позволяющую записать в текстовый файл введенную с клавиатуры строку.
2-1).Удвоить в данном файле каждую цифру.
2-2).Заменить в данном файле каждую цифру на следующую по величине.
2-3).Оставить в данном файле только первые вхождения каждой литеры.
2-4).Заменить в данном файле ккаждую литеру 'a' на две литеры 'b'.
2-5).Дописать в начало файла фразу 'Turbo Pascal'.
