1. Файлы. Операции с файлами
1. Файлы. Операции с файлами
Введение файлового типа в язык Pascal вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.
Файловый тип данных (или файл) определяет упорядоченную совокупность произвольного числа однотипных компонент. Общее свойство массива, множества и записи заключается в том, что количество их компонент определено на этапе написания программы, тогда как количество компонент файла в тексте программы не определяется и может быть произвольным.
При работе с файлами выполняются операции ввода-вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода – это пересылка данных из основной памяти на внешнее устройство (в выходной файл). Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой.
В программах на языке Pascal имена файлов задаются с помощью строк. Для работы с файлами в программе необходимо определить файловую переменную. Pascal поддерживает три файловых типа: текстовые файлы, компонентные файлы, бестиповые файлы.
Файловые переменные, которые описаны в программе, называют логическими файлами. Все основные процедуры и функции, обеспечивающие ввод-вывод данных, работают только с логическими файлами. Физический файл должен быть связан с логическим до выполнения процедур открытия файлов.
Текстовые файлы
Особое место в языке Pascal занимают текстовые файлы, компоненты которых имеют символьный тип. Для описания текстовых файлов в языке определен стандартный тип Text:
var TF1, TF2: Text;
Текстовые файлы представляют собой последовательность строк, а строки – последовательность символов. Строки имеют переменную длину, каждая строка завершается признаком конца строки.
Компонентные файлы
Компонентный, или типизированный файл, – это файл с объявленным типом его компонент. Компонентные файлы состоят из машинных представлений значений переменных, они хранят данные в том же виде, что и память ЭВМ.
Описание величин файлового типа имеет вид:
type М = File Of Т;
где М – имя файлового типа;
Т – тип компоненты.
Компонентами файла могут быть все скалярные типы, а из структурированных – массивы, множества, записи. Практически во всех конкретных реализациях языка Pascal конструкция «файл файлов» недопустима.
Все операции над компонентными файлами производятся с помощью стандартных процедур.
Write(f,X1,X2,...XK)
Бестиповые файлы
Бестиповые файлы позволяют записывать на диск произвольные участки памяти ЭВМ и считывать их с диска в память. Описываются бестиповые файлы следующим образом:
var f: File;
Теперь перечислим процедуры и функции для работы с различными видами файлов.
1. Procedure Assign(var F; FileName: String);
Процедура AssignFile сопоставляет имя внешнего файла с файловой переменной.
F – файловая переменная любого файлового типа, FileName – выражение типа String или выражение типа PChar, если допускается расширенный синтаксис. Все дальнейшие операции с F производятся с внешним файлом.
Нельзя использовать процедуру с уже открытой файловой переменной.
2. Procedure Close(var F);
Процедура разрывает связь между файловой переменной и внешним дисковым файлом и закрывает файл.
F – файловая переменная любого файлового типа, открытая процедурами Reset, Rewrite или Append. Внешний файл, связанный с F, полностью модифицируется и затем закрывается, освобождая дескриптор файла для повторного использования.
Директива {SI+} позволяет обрабатывать ошибки во время выполнения программы, используя обработку исключительных ситуаций. При выключенной директиве {$1—} необходимо использовать IOResult для проверки ошибок ввода-вывода.
3. Function Eof(var F): Boolean;
{Типизированные или нетипизированные файлы}
Function Eof[(var F: Text)]: Boolean;
{Текстовые файлы}
Проверяет, является или нет текущая позиция файла концом файла.
Eof(F) возвращает True, если текущая позиция файла находится за последним символом файла или если файл пуст; иначе Eof (F) возвращает False.
Директива {SI+} позволяет обрабатывать ошибки во время выполнения программы, используя обработку исключительных ситуаций. При выключенной директиве {SI—}, необходимо использовать IOResult для проверки ошибок ввода-вывода.
4. Procedure Erase(var F);
Удаляет внешний файл, связанный с F.
F – файловая переменная любого файлового типа.
Перед вызовом процедуры Erase файл необходимо закрыть.
Директива {SI+} позволяет обрабатывать ошибки во время выполнения программы, используя обработку исключительных ситуаций. При выключенной директиве {SI—}, необходимо использовать IOResult для проверки ошибок ввода-вывода.
5. Function FileSize(var F): Integer;
Возвращает размер в байтах файла F Однако, если F – типизированный файл, FileSize возвратит число записей в файле. Перед использованием функции FileSize файл должен быть открыт. Если файл пуст, FileSize(F) возвращает нуль. F – переменная любого файлового типа.
6. Function FilePos(var F): Longlnt;
Возвращает текущую позицию файла внутри файла.
Перед использованием функции FilePos, файл должен быть открыт. Функция FilePos не используется с текстовыми файлами. F – переменная любого файлового типа, кроме типа Text.
7. Procedure Reset(var F [: File; RecSize: Word]);
Открывает существующий файл.
F – переменная любого файлового типа, связанного с внешним файлом с помощью AssignFile. RecSize – необязательное выражение, которое используется, если F – нетипизированный файл. Если F – нетипизированный файл, RecSize определяет размер записи, который используется при передаче данных. Если RecSize опущен, заданный по умолчанию размер записи равен 128 байтов.
Процедура Reset открывает существующий внешний файл, ассоциированный с файловой переменной F. Если внешнего файла с таким именем нет, возникает ошибка времени выполнения. Если файл, связанный с F, уже открыт, он сначала закрывается и затем вновь открывается. Текущая позиция файла устанавливается к началу файла.
8. Procedure Rewrite(var F: File [; Recsize: Word]);
Создает и открывает новый файл.
F – переменная любого файлового типа, связанного с внешним файлом с использованием AssignFile. RecSize – необязательное выражение, которое используется, если F – нетипизированный файл. Если F – нетипизированный файл, RecSize определяет размер записи, который используется при передаче данных. Если RecSize опущен, заданный по умолчанию размер записи равен 128 байтов.
Процедура Rewrite создает новый внешний файл с именем, связанным с F Если внешний файл с тем же самым именем уже существует, он удаляется, и создается новый пустой файл.
9. Procedure Seek(var F; N: Longlnt);
Перемещает текущую позицию файла к определенному компоненту. Можно использовать процедуру только с открытыми типизированными или нетипизированными файлами.
Текущая позиция файла F перемещается к номеру N. Номер первого компонента файла – 0.
Инструкция Seek(F, FileSize(F)) перемещает текущую позицию файла в конец файла.
10. Procedure Append(var F: Text);
Открывает существующий текстовый файл для добавления информации в конец файла (дозапись).
Если внешнего файла с данным именем не существует, происходит ошибка времени выполнения. Если файл F уже открыт, он закрывается и вновь открывается. Текущая позиция файла устанавливается к концу файла.
11. Function Eoln[(var F: Text)]: Boolean;
Проверяет, является ли текущая позиция файла концом строки текстового файла.
Eoln(F) возвращает True, если текущая позиция файла – в конце строки или файла; иначе Eoln(F) возвращает False.
12. Procedure Read(F, V1 [, V2, ..., Vn]);
{Типизированные и нетипизированные файлы}
Procedure Read([var F: Text;] V1 [, V2, ..., Vn]);
{Текстовые файлы}
Для типизированных файлов процедура читает компонент файла в переменную. При каждом считывании текущая позиция в файле продвигается к следующему элементу.
Для текстовых файлов читается одно или несколько значений в одну или несколько переменных.
С переменными типа String Read считывает все символы вплоть до следующей метки конца строки (но не включая ее) или до тех пор пока функция Eof(F) не примет значение True. Переменной присваивается получившаяся в результате символьная строка.
В случае переменной целого или вещественного типа процедура ожидает поступления последовательности символов, образующих число по правилам синтаксиса языка Pascal. Считывание прекращается при обнаружении первого пробела, символа табуляции или метки конца строки либо в том случае, если функция Eof(F) принимает значение True. Если числовая строка не соответствует ожидаемому формату, то происходит ошибка ввода-вывода.
13. Procedure Readln([var F: Text;] V1 [, V2…, Vn]);
Является расширением процедуры Read и определена для текстовых файлов. Считывает строку символов в файле, включая маркер конца строки, и переходит к началу следующей строки. Вызов функции Readln(F) без параметров приводит к перемещению текущей позиции файла на начало следующей строки, если она имеется, в противном случае происходит переход к концу файла.
14. Function SeekEof[(var F: Text)]: Boolean;
Возвращает признак конца файла и может использоваться только для открытых текстовых файлов. Обычно применяется для считывания числовых значений из текстовых файлов.
15. Function SeekEoln[(var F: Text)]: Boolean;
Возвращает признак конца строки в файле и может использоваться только для открытых текстовых файлов. Обычно применяется для считывания числовых значений из текстовых файлов.
16. Procedure Write([var F: Text;] P1 [, P2, ..., Pn]);
{Текстовые файлы}
Записывает одну или более величин в текстовый файл.
Каждый параметр записи должен иметь тип Char, один из целочисленных типов (Byte, Shortlnt, Word, Longint, Cardinal), один из типов с плавающей запятой (Single, Real, Double, Extended, Currency), один из строковых типов (PChar, AisiString, ShortString), или один из логических типов (Boolean, Bool).
Procedure Write(F, V1, ..., Vn);
{Типизированные файлы}
Записывает переменную в компонент файла. Переменные VI…., Vn должны быть того же типа, что и элементы файла. При каждой записи переменной текущая позиция в файле передвигается к следующему элементу.
17. Procedure Writeln([var F: Text;] [P1, P2, ..., Pn]);
{Текстовые файлы}
Выполняет операцию Write, затем помещает метку конца строки в файл.
Вызов Writeln(F) без параметров записывает в файл маркер конца строки. Файл должен быть открыт для вывода.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Операции с файлами и папками
Операции с файлами и папками В данном разделе мы рассмотрим важнейшие операции, которые можно выполнять с файлами и папками, хранящимися на компьютере, а также поговорим о том, как создавать новые объекты, записывать файлы на компакт-диск, flash-память и
17.4. Операции с файлами
17.4. Операции с файлами Следующая группа вызовов начинается с FIO и может применяться к определенным типам файлов в дополнение к сокетам. Мы рассматриваем только вызовы, применимые к сокетам [128, с. 553].Следующие пять вызовов требуют, чтобы третий аргумент функции ioctl указывал
Операции с файлами и папками. Проводник
Операции с файлами и папками. Проводник Что ж, если мы уже вошли в мир файлов и папок, давайте посмотрим на содержимое нашего компьютера… На логическую структуру жесткого диска. Вся информация хранится в файлах, файлы – в папках, папки – на жестких дисках. Все вроде
1. Файлы. Операции с файлами
1. Файлы. Операции с файлами Введение файлового типа в язык Pascal вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.Файловый тип данных (или файл) определяет упорядоченную
Урок 6 Решительно осуществляем простейшие операции с файлами
Урок 6 Решительно осуществляем простейшие операции с файлами В этом уроке мы изучим некоторые простые операции с графическими файлами: научимся их создавать, открывать, сохранять, ну и закрывать, конечно. После этого уделим немного нашего внимания встроенному
8.3. Функция fcntl(): блокировки и другие операции над файлами
8.3. Функция fcntl(): блокировки и другие операции над файлами Функция fcntl() — это точка доступа к нескольким особым операциям над файлами. Первым аргументом функции является дескриптор файла, вторым указывается код операции. Для некоторых операций требуется также
Операции над файлами
Операции над файлами Функция Краткое описание access определение прав доступа к файлу chmod изменение прав доступа к файлу filelength измерение длины файла isatty проверка, является ли устройство символьным mktemp генерация уникального имени файла remove уничтожение
Рабочий стол. Операции с файлами и папками
Рабочий стол. Операции с файлами и папками Итак, вы включили ноутбук. Некоторое время будет загружаться операционная система (ОС). Это система программ и устройств, которые позволяют пользоваться компьютером. Без ОС ваш компьютер, грубо говоря, просто груда
Операции с файлами
Операции с файлами В состав класса CFile входят методы, позволяющие выполнять над файлами различные операции, например копирование, переименование, удаление, изменение атрибутов.Операционная система MS-DOS содержит команду REN, позволяющую переименовывать файлы. Класс CFile
7.6. Основные операции с файлами и папками
7.6. Основные операции с файлами и папками 7.6.1. Просмотр содержимого каталога Итак, начнем обзор нашей файловой системы. Откройте окно Мой компьютер (рис. 51) — вы увидите список дисков. Если щелкнуть на произвольном диске один раз, то слева вы увидите сводную информацию о
7.6.2. Операции с файлами
7.6.2. Операции с файлами Щелкните на любом файле правой кнопкой мыши. Вы увидите всплывающее меню (рис. 53):Открыть — будет вызвана программа, связанная с этим файлом, и в нее будет загружен выбранный файл. Это действие является действием по умолчанию (в меню оно выделено
Операции с файлами и папками
Операции с файлами и папками Одно из главных достоинств графического интерфейса – поддержка технологии Drag and Drop (дословно «перетащил и кинул»). Суть идеи заключается в том, что, выделив какой-либо объект в окне (или на Рабочем столе), а затем щелкнув на нем левой или правой
Урок 2.6. Операции с файлами и папками
Урок 2.6. Операции с файлами и папками Просмотр свойств объектов Для получения основных сведений о файле или папке достаточно щелкнуть на нем в окне папки кнопкой мыши – и основная информация появится на панели подробностей, которая расположена в нижней части окна. Для
Операции с файлами и папками
Операции с файлами и папками Наличие двух панелей позволяет легко и наглядно копировать или перемещать файлы.Последовательность действий при копировании или перемещении будет следующей.1. Откройте на одной из панелей папку, в которую нужно скопировать объект.2.
Файлы и операции с ними
Файлы и операции с ними Итак, что такое файл, мы уже себе можем представить (одна программа, один документ, один рисунок и т. д.). Каждый файл обязательно имеет имя, адрес, размер.Начнем с «прописки» файла. Здесь, слава богу, только два варианта – внутри компьютера (на жестком