Студопедия

КАТЕГОРИИ:


Архитектура-(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)

While not eof(t) do

Begin

Begin

Begin

Begin

Var

Примеры чтения и обработки текстовых файлов

Считывание и запись тестовых файлов

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

Считывание данных из текстовых файлов выполняется процедурами:

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

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

Здесь <список ввода> - перечень переменных литерного, целого или вещественного типов (в ВР + string). Указатель текущего элемента файла при считывании очередного элемента файла автоматически перемещается на следующий элемент (кроме string). Readln дополнительно обеспечивает, после чтения переменных из списка ввода, перевод указателя текущей позиции на начало новой строки.

Запись данных в текстовые файлы выполняется процедурами

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

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

writeln дополнительно обеспечивает после вывода выражений из списка вывода, запись в файл метки конец файла.

Для обнаружения конца файла применяется стандартная функция eof(<файловая переменная>), которая принимает значение TRUE, если указатель файла указывает на метку конец файла, и значение FALSE в ином случае. Таким образом, последовательное чтение всех компонентов из файла, размер которого неизвестен может выполняться с помощью цикла:

while not eof(f) do read(f,n);

Для обнаружения конца строки при чтении текстового файла используется встроенная функция eoln(<файловая переменная>), принимающая значение TRUE, если указатель текущего элемента указывает на метку конец строки, и значение FALSE в противном случае.

Текстовый файл может использоваться для хранения числовых значений. При считывании таких значений из файла или их записи в файл происходит автоматическое преобразование из числового формата в символьный и наоборот.

Пусть дана книга. Требуется подсчитать среднее количество букв, приходящееся на одну строку.

Procedure mean(var book:text);

Ks,kb:integer; c:char;

reset(book);

ks:=0;

kb:=0;

while not eof(book) do { цикл по строкам }

while not eoln(book) do { цикл по буквам }

kb:=kb+1; { счетчик букв }

read(book,c);

end;

readln(book); { пропуск конца строки }

ks:=ks + 1; { счетчикстроки }

end;

writeln(‘ Среднееколичествобукввстроке’ ,trunc(kb/ks+0.5));

end;

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

Function emptylines(var t:text):integer;

Var k,d:integer;

C:char;

reset(t);

k:=0;

<== предыдущая лекция | следующая лекция ==>
Открытие и закрытие файлов | Примеры. Прямой доступ к бинарным файлам
Поделиться с друзьями:


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


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



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




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