Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Реальный номер записи всегда на единицу больше номера позиции.

Нумеруются позиции файлового указателя целыми числами, начиная из нуля.

 

 

Для типизированного файла обе процедуры reset и rewrite устанавливают режим чтения и запись, т.е. допускается чередование этих операций независимо от выбора процедуры открытия.

 

Чтение из типизированных файлов выполняется только процедурой read, а запись – только процедурой write.

 

Read(файловая_переменная, список_ввода);

 

Единицей чтения/записи может быть лишь переменная того же типа, что и тип файла.

 

Процедура write для типизированных файлов имеет формат

write(файловая_переменная, список_вывода);

 

Для работы в файлах с прямым доступом разработаны следующие процедуры и функции (пусть переменную k описали как longint):

 

 
 

Функция FilePos возвращает номер позиции указателя в файле (позиции нумеруют с нуля!). Результат функции longint. Синтаксис указателя функции:

FilePos(файловая_переменная);

Var f:file of byte;

k:longint;

Если файловый указатель указывает на четвертый элемент, то оператор

k:=filepos(f);

возвратит значение k=3.

 

Функция filesize возвращает размер файла (число элементов при счете от единицы!). Результат функции longint. Синтаксис указателя функции:

FileSize(файловая_переменная);

 

Для предыдущего примера оператор

 

k:=filesize(f);

 

возвратит значение k=6.

 

Процедура seek перемещает указатель текущей позиции в файле на позицию с заданным номером (при счете от нуля!)

 

Seek(файловая_переменная, номер_позиции);

 

Если для предыдущего примера использовать оператор

seek(f,2);

Файловый указатель будет установлен на позицию 2, а компонент файла номер 3

 

 

Процедура

Truncate(файловая_переменная);

удаляет все компоненты файла от текущего компонента до конца файла.

 

После окончания работы с типизированным файлом его надо закрыть (процедура close).

 

Главное преимущество типизированных файлов – прямой доступ и возможность чередования операций чтения и записи независимо от выбора процедуры открытия.

 

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

Если бинарный файл прочитать как текстовый, то большинство символов окажутся бессодержательными.

 

Пример 3. Создать файл из целых чисел. Ввод данных осуществлять пока не будет нажат символ 'Y'.

program File_tip_sozd;

var f:file of integer;

c:integer;

s:char;

name:shortstring;

begin

writeln('Enter name of file');

//Ввод имени файла

readln(name);

{Связывание логического файла с физическим +расширение}

assign(f, name+'.dat');

//Открытие файла для записи

rewrite(f);

repeat

writeln('Enter chislo');

readln(c);

{Запись в файл – использовать только write}

write(f,c);

{Для окончания ввода в файл нажать большую букву Y

writeln('End of Enter – Yes (Y)/No (N)');

readln(s);

until s='Y';

close(f);

writeln('Press Enter');

readln

end.

 

 


 

 
 

 

 


Распечатать файл. Найти сумму положительных элементов файла. Найти разность первого и последнего элемента.

 

program File_tip_rabota;

var f:file of integer;

s, i, L, c, c1:integer;

name:shortstring;

begin

writeln('Enter name of file');

//Ввод имени файла

readln(name);

{Связывание логического файла с физическим +расширение}

assign(f, name+'.dat');

//Открытие файла для чтения

reset(f);

//Определяем длину файла

L:=filesize(f);

For i:=1 to L do

begin

{Чтение из файла -– использовать только read}

read(f,c);

//вывод содержимого файла на консоль

write(c,' ');

end;

writeln;

{закрываем файл и устанавливаем указатель на начало файла – reset

reset(f);

s:=0;

For i:=1 to L do

begin

{Чтение из файла – использовать только read}

read(f,c);

if c>0 then s:=s+c;

end;

writeln('Summa dodatnix ',s);

{устанавливаем указатель на первый элемент}

seek(f, 0);

read(f, c);

{Устанавливаем указатель на последний элемент}

seek(f, L-1);

read(f, c1);

close(f);

//Разность первого и последнего

writeln('Pervi - posled ',c-c1);

writeln('Press Enter');

readln

 
 

end.

 

 

<== предыдущая лекция | следующая лекция ==>
Типизированные файлы. Типизированный файл – упорядоченная последовательность элементов одного типа | Определённый интеграл. Пусть функция y=f(x) определена на отрезке [а, b], а<b
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 284; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.