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

Файл (File). Язык программирования Turbo Pascal 7.0

РефератПомощь в написанииУзнать стоимостьмоей работы

Обычно доступ к элементам файла осуществляется последовательно, т. е. когда элемент считывается или записывается, то текущая позиция файла перемещается к следующему по порядку элементу файла. Однако для типизированных и нетипизированных файлов можно организовать прямой доступ к любому элементу с помощью стандартной процедуры Seek, которая перемещает текущую позицию файла к заданному элементу… Читать ещё >

Файл (File). Язык программирования Turbo Pascal 7.0 (реферат, курсовая, диплом, контрольная)

Файл — это совокупность данных, имеющих общее имя и назначение, и существующая на некотором носителе. Компоненты файла могут быть любого типа, за исключением типа-файла и типа-объекта. Число компонент в файле не объявляется.

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

Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид: 'LAB1.DAT', 'c:ABC150pr.txt'.

Любой файл и соответствующий ему набор данных представляют собой линейную последовательность произвольного числа элементов, каждый из которых имеет номер (первый элемент номер 0).

Для задания типа-файла следует использовать зарезервированные слова file и of, после чего указать тип компонент файла.

type.

Number = file of Integer; {тип-файл целых чисел}.

Symb = file of 'A'.'Z'; {тип-файл прописных латинских букв}.

Текстовые файлы определяются в разделе Var:

Var Имя_текстового_файла: Text;

Input, Output: Text;

Fl, F2: file of Integer;

Тип-файл можно определять и непосредственно при введении файловых переменных. Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никаких операций. Их можно использовать лишь для выполнения операций с файлами.

В Паскале определены три типа файлов:

  • 1) текстовые; состоят из строк символов. Конец записи определяется концом строки. Чтение и запись в файл осуществляется посимвольно.
  • 2) типизированные могут состоять из записей любого типа.
  • 3) нетипизированные файлы фактически представляют собой каналы ввода/вывода нижнего уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры.

Обработка файла может производиться двумя способами:

  • 1) с использованием последовательного доступа;
  • 2) с использованием прямого (произвольного) доступа.

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

Когда программа завершает обработку файла, его нужно закрыть. Только после этого связанный с ним внешний набор данных будет обновлен. Затем файловая переменная может быть связана с другим набором данных, или обновленный набор данных может быть связан с другой файловой переменной.

Для чтения и записи в текстовые файлы используются стандартные операторы Read (Readln) и Write (Writeln):

Readln (имя файла, запись);

Writeln (имя файла, запись);

где запись — имя данного, которое читается (записывается) из файла. Это может быть символ, строка или число.

Работа с существующим файлом обычно включает в себя операции открытия его для чтения, и затем считывания из него записей, пока не появится признак «Конец файла» — Eof (Файл). Поэтому соответствующие программы содержат циклы вида.

While Not Eof (Файл) do readln (Файл, Запись);

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

Таблица 3.3.

Процедуры и функции для работы с файлами.

ФУНКЦИЯ.

ОПИСАНИЕ.

Procedure Append (var f: text).

Открывает существующий файл, связанный с файловой переменной f, для добавления в него новых записей.

Procedure Assign (var f: String).

Связывает внешний файл, имя которого указано в строковой константе String, с файловой переменной f.

procedure BlockRead (var R file; var But; Count: Word).

Считывает из нетипизированного файла, связанного с файловой переменной f, одну или несколько записей (их количество задается целочисленным выражением Count) в переменную Buf.

Procedure BlockWrite (var R file; var Buf; Count: Word).

Записывает в нетипизированный файл, связанный с файловой переменной f, одну или несколько записей (их количество задается целым выражением Count) из переменной Buf.

Procedure ChDir (S: String).

Выполняет смену текущего каталога на каталог, маршрут к которому указан в текстовой переменной S.

Procedure Close (var F).

Закрывает открытый файл, связанный с файловой переменной F.

Procedure Erase (var F).

Стирает внешний файл, связанный с файловой переменной F.

function Eof (var F): Boolean.

Возвращает состояние End-of-file (конец файла) для файла, связанного с файловой переменной F: True — если текущее положение указателя находится в конце файла или файл пустой; False — во всех остальных случаях.

Function FilePos (var F): Longlnt.

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

function FileSize (var F): Longtnt.

Возвращает текущий размер файла, связанного с файловой переменной F. Если файл пустой, возвращает нулевое значение. Для текстовых файлов не используется.

procedure Flush (var F: text).

Сбрасывает буфер текстового файла, связанного с файловой переменной F и открытого для вывода процедурой Rewrite или Append. Это дает гарантию того, что вся информация, записываемая в файл, будет сохранена во внешнем файле. Не влияет на файлы, открытые для ввода.

procedure GetDir (D: Byte; varS: String);

Возвращает текущий каталог на заданном диске. Имя каталога находится в строковой переменной S, а диск задается значением параметра D: 0 — текущий диск; 1 — диск А; 2 — диск В; 3 — диск С, и т. д. Если значение, заданное в параметре D, неверное, возвращается результат «Х:».

function IOResult: Integer.

Возвращает целое значение, являющееся состоянием последней выполненной операции ввода-вывода. Нулевое значение соответствует нормальному завершению операции.

procedure MkDir (S: String).

Создает подкаталог, имя для которого задается строковой переменной S.

procedure Read (var R text;v1,…).

Считывает одно или несколько значений из файла, связанного с файловой переменной F, в одну или несколько переменных vl, …

procedure ReadLn (var R text; v1,…).

То же, что и Read, но выполняет пропуск до начала следующей строки текстового файла.

procedure Rename (var F, S).

Переименовывает внешний файл, связанный с файловой переменной F, присваивая ему имя, содержащееся в строковой переменной S.

procedure Reset (var F).

Открывает существующий файл, связанный с файловой переменной F. Текущий указатель устанавливается в начало файла. Текстовый файл открывается только для чтения.

procedure Rewrite (var F).

Создает и открывает новый файл, связанный с файловой переменной F. Если файл с указанным именем уже существует, старый файл стирается, а на его месте создается новый пустой файл. Текущий указатель устанавливается в начало файла.

procedure RmDir (S: String).

Удаляет пустой подкаталог, маршрут которого указан в строковой переменной S.

procedure Seek (var F, N: Longint).

Перемещает текущую позицию в файле, связанном с файловой переменной F, на заданный элемент. Началу файла соответствует нулевое значение N. Для текстовых файлов не используется.

function SeekEof (var R text): Boolean.

Возвращает состояние «конец файла» для текстового файла, связанного с файловой переменной F.

function SeekEoln (var R text): Boolean.

Возвращает состояние «конец строки» для текстового файла, связанного с файловой переменной F.

procedure SetTextBuf (var F. text; var Buf).

Назначает буфер ввода-вывода для текстового файла, связанного с файловой переменной F. Никогда не применяется к открытым файлам, поскольку в этом случае возможны потери данных.

procedure Truncate (var F).

Усекает размер файла, связанного с файловой переменной F, до текущей позиции. Вся информация после текущего положения указателя теряется. Для текстовых файлов не используется.

procedure Write (var P. text, vl,…).

Записывает в файл, связанный с файловой переменной F, одно или несколько значений, хранящихся в переменных vl, … Файловая переменная может быть связана не только с текстовым файлом. В случае текстового файла значения могут иметь целый, вещественный, строковый, символьный или булев типы. В случае типизированного файла тип значений должен совпадать с типом компонентов файла.

Procedure WriteLn (var R text, v1,…).

Делает то же, что Write, но затем записывает в текстовый файл признак конца строки.

Показать весь текст
Заполнить форму текущей работой