Студопедия

КАТЕГОРИИ:


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

Стандартные процедуры и функции обработки файлов

Repeat

End;

Read(Fx,X);

Begin

While Not Eof(Fx) Do

Sx:=0;

Reset(Fx);

End.

Reset(Fx);

Begin

X: char;

….

For I:=l To 10 Do Read(Fx,X)

….

Функция Eof (FV) проверяет маркер конца файла (end of file). Это логическая функция, которая получает значение true, если указатель установлен на маркер конца, в противном случае — false.

Пример 3. Просуммировать все числа из файла целых чисел Fx.

 

…..

Sx:=Sx+X

……

To же самое с помощью цикла Repeat можно делать следующим образом:

Read (Fx,X);

Sx:=Sx+X

Until Eof(Fx);

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

Внешние файлы. В Турбо Паскале все внешние устройства (дисплей, клавиатура, принтер, диски и т.д.) трактуются как логические устройства с файловой структурой организации данных. Все немагнитные внешние устройства однофайловые. Иначе говоря, с каждым из них связан один файл со стандартным именем, предназначенный для обмена с внутренней памятью ЭВМ текстовой (символьной) информацией.

Стандартные имена логических устройств определяются операционной системой, в среде которой работает Паскаль. В системе MS DOS определены следующие имена:

CON (консоль) — логическое устройство, связанное при вводе с клавиатурой, при выводе — с экраном;

PRN (принтер) — логическое имя файла, связанного с устройством печати;

AUX — логическое имя коммуникационного канала, который используется для связи ПК с другими машинами;

INPUT — логическое имя стандартного устройства ввода, связанного с клавиатурой; при этом вводимые с клавиатуры символы отражаются на экране дисплея;

OUTPUT — логическое имя стандартного устройства вывода а экран.

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

Файлы идентифицируются посредством соответствующих файловых переменных. Процедуры и функции для работы с файлами.

ASSIGN (<имя файла>,<имя файла на носителе>); – процедура устанавливает связь между именем файловой переменной и именем файла на носителе. Здесь <имя файла> – это файловая переменная, т.е. правильный идентификатор, объявленный в программе как переменная файлового типа. <Имя файла на носителе> – текстовое выражение, содержащее имя файла или имя логического устройства. Перед именем файла на носителе может ставиться путь к файлу – имя диска и (или) имя текущего каталога и имена каталогов вышестоящих уровней.

RESET(<имя файла>); – процедура открытия существующего файла для чтения при последовательном доступе и для чтения и записи при прямом доступе. Указатель файла при этом устанавливается на первую запись (с 0 номером).

REWRITE(<имя файла>); – процедура открытия создаваемого файла для записи. Если файл с таким именем уже существовал, то он стирается. Указатель файла устанавливается на первую запись.

READ(<имя файла>, <переменные>); – процедура чтения очередных компонент файла в переменные, тип которых должен совпадать с типом компонент файла. Указатель файла при этом передвигается на количество прочитанных компонент.

WRITE(<имя файла>, <переменные>); – процедура записи содержимого переменных в файл согласно положению указателя. Указатель автоматически сдвигается на число записанных компонент.

SEEK(<имя файла>, <номер компоненты>); – процедура установки текущего указателя для чтения или записи требуемой компоненты файла. Используется для организации прямого доступа к записям файла.

CLOSE(<имя файла>); – процедура закрытия файла. Обязательно должна использоваться после создания файла, иначе может произойти потеря данных.

ERASE(<имя файла>); – процедура уничтожения файла. Открытый файл прежде должен быть закрыт.

RENAME(<старое имя файла>, <новое имя файла>); – процедура для переименования файла. Используется после закрытия файла.

IORESULT:Integer; – функция возврата условного признака последней операции ввода-вывода. Если операция завершилась успешно, функция возвращает нуль. Функция становится доступной только при отключенном автоконтроле ошибок ввода-вывода. Директива компилятора {$I-} отключает, а {$I+} – включает автоконтроль ошибок. Если автоконтроль отключен и операция ввода-вывода привела к возникновению ошибки, устанавливается флаг ошибки и все последующие обращения к вводу-выводу блокируются, пока не будет вызвана функция IORESULT.

FILEPOS(<имя файла>):LongInt;– функция определения номера текущей записи файла.

FILESIZE(<имя файла>):LongInt; – функция определения общего количества записей файла.

EOF(<имя файла>):Boolean; – функция определения признака конца файла. Получает значение TRUE при чтении последней записи файла.

EOLN(<имя файла>):Boolean; – функция обнаружения конца строки в текстовом файле. Имеет значение TRUE, если найден конец строки.

<== предыдущая лекция | следующая лекция ==>
Program A; | Текстовые файлы
Поделиться с друзьями:


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


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



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




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