1.2.2. Текстовые файлы. 1.2.3. Нетипизированные файлы. 1.2.4. Связывание логического и физического файлов. 1.2.5. Открытие файла
1. 2. 2. Текстовые файлы Структура текстовых файлов отличается от структуры обычных файлов (линейная последовательность элементов одного типа) тем, что содержимое текстового файла рассматривается как последовательность символьных строк переменной длины, разделенных специальной комбинацией, называемой «конец строки». Как правило, эта комбинация строится из управляющего кода «возврат каретки», за которым, возможно, следует управляющий код «перевод строки». Представителем текстового файла в программе является переменная файлового типа, которая должна быть описана с указанием стандартного типа text. Например, VAR Text_Inf: text; 1. 2. 3. Нетипизированные файлы Для нетипизированных файлов тип не устанавливается. Соответствующие переменные описываются с помощью служебного слова file (без of). Например, VAR Data: file; Для нетипизированных файлов оговаривается лишь размер элементов. В такой файл можно записать значение любой переменной, имеющей заданный размер; при чтении допускается произвольная интерпретация содержимого очередного элемента.
1. 2. 4. Связывание логического и физического файлов Для установления связи между конкретным физическим файлом на магнитном носителе и переменной файлового типа предназначена процедура Assign: AssignFile (f, < имя файла> ), где f - переменная любого файлового типа, < имя файла> - имя физического файла.
1. 2. 5. Открытие файла Для поиска файла на внешнем носителе, образования специальных системных буферов для обменов с ним и установки текущего указателя файла на его начало предназначены процедуры Reset и Rewrite. Для открытия существующего файла используется процедура
Reset(f), а для создания и открытия нового файла - процедура Rewrite(f). При описании обеих процедур параметр f означает файловую переменную некоторого типа. При попытке создать и открыть новый файл с именем уже существующего на диске набора данных действие процедуры Rewrite сведется к удалению этого набора и созданию нового пустого файла с тем же именем. Открытие внешнего файла с помощью процедуры Reset в случае отсутствия его на диске может привести к ошибке. Ошибочные ситуации при работе с файлами позволяет отслеживать специальная функция, формат вызова которой: IOresult. Данная функция возвращает целое число, соответствующее коду последней ошибки в операции. Если же операция прошла без сбоев, то функция IOresult вернет значение 0. Опросить функцию IOresult можно только один раз после каждой операции, т. к. она обнуляет свое значение при каждом вызове. Коды ошибок, возвращаемые функцией IOresult, приведены в таблице.
В следующей программе приведен пример использования функции IOResult. Требуется определить факт наличия файла File. txt на диске и выдать его размер в байтах. Для этого на форму поместили компонент TEdit с именем по умолчанию Edit1, написали обработчик событий на нажатие на компонет кнопкой мыши. После на этом компоненте должна отразиться искомая информация.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Edit1: TEdit; procedure Edit1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; FF: file of string[30]; implementation
{$R *. dfm}
procedure TForm1. Edit1Click(Sender: TObject); var Err: byte; begin AssignFile(ff, 'File. txt'); {$I-} Reset(ff); {$I+} Err: =IOResult; if (Err = 2) or (Err = 3) then Edit1. Text: = 'Файл не найден'; if Err=102 then Edit1. Text: ='Логический и физический файлы не связаны'; if Err=0 then Edit1. Text: = 'Размер файла '+ IntToStr(FileSize(ff))+ ' байт'; end; end. 1. 2. 5. 1. Особенности открытия текстовых файлов В отношении текстовых файлов действие процедуры Reset (f) означает открытие файла только для чтения, а Rewrite (f) - только для обновления файла. Если необходимо добавить новые строки в конец уже существующего текстового файла, используют процедуру Append(f), которая не очищает файл, а только устанавливает текущий указатель файла в его конец.
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|