Студопедия

КАТЕГОРИИ:


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

Читання даних з файлу




Перед тим як розглядати процедури читання, помітимо що файл можна обходити тільки послідовно. Гарною аналогією файлу може послужити магнітна стрічка, з якої данні можна зчитувати тільки по черзі, а для повернення до початку блоку даних потрібно додаткове зусилля (перемотування).

Щоб відкрити для читання файл, що був зазначений при виклику assign, потрібно використовувати процедуру

reset(TxtFile: text);

Після такої дії «читаючий покажчик» буде встановлений на початок файлу. Зрозуміло, зазначений файл повинний існувати на диску, у противному випадку в програмі виникне помилка.

Після відкриття файлу можна починати читання даних. Для цього використовуються процедури read і readln, що використовуються в наступному форматі:

read(TxtFile: text, v1: type1, v2: type2,... vN: typeN);

readln(TxtFile: text, v1: type1, v2: type2,... vN: typeN);

Перша процедура читає послідовно з файлу значення і поміщає їх у змінні v1, v2,... v. Після кожного прочитаного значення покажчик файлу зміщується до початку наступного значення. Процедура readln робить те ж саме, після чого переміщує покажчик на початок наступної рядка; readln з одним лише першим параметром переводить покажчик на початок нового рядка. Як параметри для процедур read і readln можна використовувати змінні наступних типів:

* цілі: integer, byte, shortint, word, longint;

* дійсні: real, single, double, extended, comp;

* рядкові (string);

* символьні (char).

При читанні рядкових значень з файлу береться вся послідовність символів від позиції покажчика до кінця рядка. Якщо після цього спробувати знову прочитати рядок, то результат буде порожнім рядком (' '). Якщо спробувати прочитати число, коли покажчик файлу стоїть наприкінці рядка, то буде прочитаний 0.

При читанні чисел read і readln працюють так: спочатку покажчик пропускає всі пробіли і символи табуляції, а потім, знайшовши перший значущий символ, намагається прочитати число. Якщо це неможливо (зустрілася буква чи число записане невірно), то відбудеться помилка.

Приклад використання процедури читання:

var f: text; s: string; n: integer;

...

readln(f,n,s);

Необхідно пам'ятати, що якщо файл не був відкритий для читання за допомогою reset, то будь-яка спроба прочитати з нього дані приведе до помилки.

Досить часто в програмі буває необхідно визначити, чи дійшов покажчик файлу до кінця рядка чи до кінця файлу. У цьому випадку корисно використовувати такі функції:

eoln(TxtFile: text): boolean;

eof(TxtFile: text): boolean;

Перша приймає значення true (істина), якщо покажчик стоїть на кінці рядка, друга — те ж саме для кінця файлу.

Після того як всі операції читання закінчені, файл необхідно закрити за допомогою процедури

close(TxtFile: text);

якщо цього не зробити, то уміст файлу може виявитися зіпсованим після виконання нашої програми.

 

Приклад 1 (процедури читання). Нехай мається текстовий файл, наприклад програма на Паскалі. Потрібно роздрукувати його вміст на екрані:

program ShowFile;

var f: text;

c: char;




Поделиться с друзьями:


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


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



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




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