Типы данных, которые мы рассматривали в прошлых уроках, обладают одним существенным недостатком. Они не приспособлены для долговременного хранения информации. Возьмем, например, такой тип как Запись. Мы можем внести в программу множество различных данных (с клавиатуры в процессе выполнения программы), однако, после закрытия программы все эти данные исчезнут. При повторном запуске программы нам по новой придется вводить информацию о цвете автомобиля, его марке, пробеге, дате выпуска и т.д. А если нам необходимо ввести информацию о нескольких сотнях автомобилях? Не будем же мы каждый раз при новом запуске программы вводить всю информацию по-новому. Конечно же, не будем. Для долговременного хранения информации на компьютере в языке программирования Pascal используют файловый тип.
Файлом называют область во внешней памяти компьютера, которая обладает определенными признаками:
Файлы бывают 3-х видов: текстовые файлы, типизированные файлы и нетипизированные файлы.
В этой статье мы научимся открывать с помощью Паскаля текстовые файлы и выводить их содержимое на экран.
Открытие текстового файла для чтения.
Для того чтобы открыть текстовый файл, его сначала нужно создать. Поэтому в директории C:\FPC\2.2.2\bin\i386-win32\Programs создаем файл с названием «text» и расширением «txt». В этом файле записываем какое-нибудь слово, например, «pascal».
Далее набираем программу.
Строка №3. Записываем переменную «fl» и указываем для нее тип Text. Text - стандартный текстовый тип файла. Переменные этого типа используются для хранения текстовой информации. Переменная «fl» называется файловой переменной и служит для связи программы с текстовым файлом. На этом этапе главное запомнить, что любые файловые переменные, предназначенные для работы с текстовыми файлами, должны иметь тип данных Text.
Строка №4. Записываем переменную «str» и указываем для нее тип данных String. Эту переменную мы будем использовать для чтения строк из файла.
Строка №7. Для того чтобы текстовый файл (text.txt, созданный нами ранее) стал доступен программе, его необходимо связать с файловой переменной («fl»). Это осуществляется с помощью стандартной процедуры Assign. Записываем процедуру Assign, затем в круглых скобках указываем переменную, и через запятую в апострофах указываем путь к нашему файлу «text.txt». Теперь посредством файловой переменной «fl» мы можем управлять файлом «text.txt».
Строка №8. Здесь происходит инициация файла. Инициация файла – это открытие файла для чтения, записи либо для чтения и записи одновременно. Процедура Reset говорит нам о том, что файл открывается только для чтения. В скобках после слова Reset указывается файловая переменная «fl». Т.к. эту переменную мы связали с текстовым файлом «text.txt», то в результате процедуры Reset этот текстовый файл будет открыт для чтения.
Строка №9. Для того чтобы получить доступ к записям, хранящимся в файле, используются процедуры Read, Readln, Write, Writeln. В нашем примере для чтения записи из файла используется процедура Read. Записываем процедуру Read, далее в скобках указываем название файловой переменной и через запятую название строковой переменной. В результате действия процедуры Read из файловой переменной «fl» (как вы помните, в этой переменной хранится текстовая информация из файла «text.txt», т.е. слово «pascal») будет прочитана информация (слово «pascal») и эта информация будет записана в строковую переменную «str».
Строка №10. Выведем на экран значение строковой переменной «str». Т.е. на экран выведется слово «pascal».
Строка №11. Стандартная процедура закрытия файла, указанного в скобках после слова Close.
Дополнение к материалу.
1. Правила для составления имен файлов.
2. В нашем примере мы поместили текстовый файл в папке «programs». Вообще файл можно разместить в любом месте на компьютере, но тогда необходимо указывать полный путь к этому файлу в строке №7.
Предыдущая статья : Записи с вариантами.
Оглавление : Уроки Паскаль. Файлы.
Следующая статья : Файлы в Паскаль (часть 2).
Комментарии
Вот моя попытка, (к сожалению не рабочая):
type opisanie= record
model: string[20];
ves: integer;
tip_corp: string[20];
diag_d: string[5];
dif: string[10];
f_mem: string[5];
cam: string[10];
ovpam: integer;
end;
type nex=^element;
element=record
zap:opisanie;
next:nex;
end;
function insort(l: nex): nex;
function ins(a: nex; l :nex): nex;
begin
a^.next:=nil;
if l=nil then
insort:=a
else
if a^.zap
function insort(l: nex): nex;
function ins(a: nex; l :nex): nex;
begin
a^.next:=nil;
if l=nil then
insort:=a
else
if a^.zap
var что делать?