Типичный цикл посимвольной обработки 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типичный цикл посимвольной обработки



var f: TextFile; // объявлена файловая переменная f типа TextFile

begin

AssignFile(f, <имя файла>); // открыть файл

Reset(f); // подготовить файл к работе

 

While not(eof(f)) do // пока файл не кончится выполнять цикл

begin

Read (f, char); // посимвольное чтение

//или

Readln (f, string); // читать строку

end;

close(f); // закрыть файл

end;

В лекциях написаны фрагменты кода без Try\Finallу,но мы должны иметь представление где их поставить.после того,как что-то открыли (сделали Reset\Rewrite) поставить Try,потом идет работа с файлом Finally и Close.

 

В ЧЕМ РАЗНИЦА МЕЖДУ ТЕКСТОВЫМИ И БИНАРНЫМИ ФАЙЛАМИ(текстовые могут быть связаны с какими-то внешними устройствами.можем узнать когда будет конец файла,сколько в нем символов,где длина….

Работа с бинарными файлами.

Работа с файлами

Способы работы с файлами в системе Delphi 7

При работе с файлами в системе Delphi 7 возможны два принцип иально разных

подхода. Первый состоит в использовании стандартных подпрограмм (они имелись

еще в классической версии Паскаля тридцатилетней давности), позволяющих запи-

сывать содержимое переменных в файлы и считывать их обратно из файлов в пере-

менные. К этим средствам добавились также библиотеки стандартных функций

по работе с файлами, основанные на системных функциях Windows.

В связи с появлением версии Object Pascal и реализации понятия класса в языке

появились средства объектной работы с данными. Это второй подход к работе с

файлами в системе Delphi 7. В свою очередь в рамках каждого из подходов приме-

няются также существенно различающиеся приемы. Например, при классическом

подходе в работе с файлами могут использоваться прямые обращения к функциям

Windows или обращения к функциям BIOS.

Общая технология работы с файлами в Delphi 7

Несмотря на все различия, независимо от используемого подхода технология работы

с файлами в системе Delphi 7 требует определенного порядка действий.

1. Прежде всего файл должен быть открыт. Это означает, что операционная сис-

тема дает добро на внесение изменений в данный файл (например, на запись

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

файлу (если компьютер подключен к сети) выполнялись корректно. Так, считы-

вание данных из файла, в который другой пользователь в этот момент вносит

изменения, невозможно.

При открытии файла системе управления файлами обычно сообщается, в каком

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

или же файл открывается только для считывания из него данных. В последнем

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

указывается также, какова внутренняя структура открываемого файла — это

требуется, чтобы выполнять операции с ним максимально быстро.

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

катор — переменная, которая будет использоваться для идентификации этого

файла во всех процедурах обработки.

2. Начинается работас файлом. Это может быть считывание из него данных, запись,

поиск и другие операции.

3. Файл закрывается. Это означает, что он снова доступен другим приложениям

без ограничений. Кроме того, закрытие файла гарантирует, что все внесенные

в него изменения не пропадут, потому что для повышения скорости работы

результаты промежуточных действий обычно сохраняются в специальных буферах операционной системы.

Типы файлов

В системе Delphi 7 имеется стандартный тип File (ключевое слово), на основе кото-

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

данными. Если переменная описана так:

var F: File;

то она считается нетипизированной файловой переменной, позволяющей работать

с файлами на низком уровне (структура файла неизвестна). При этом данные будут

считываться и записываться блоками по 128 байт (значение по умолчанию). Размер

блока можно изменить в момент открытия файла. Рекомендуется назначать этот

размер равным 1 байту, чтобы корректно обрабатывать файлы любой структуры.

Чаше всего в программах используются файлы, состоящие из последовательности

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

var имя-переменной: File of тип,-

Б качестве типа файла должен быть указан тип, для которого точно известен фик-

сированный размер в байтах. К таковым относятся все базовые типы (за исключе-

нием типа String, если для него явно не задан размер), структуры, статические мас-

сивы и прочие, например:

type TMyFile = record

Name: String[20];

Number: integer;

end;

var F: File of TMyFile,-

ВНИМАНИЕ Файловые типы нельзя использовать в качестве элементов массивов

и полей структур.

Открытие файлов

Перед тем как выполнить физическое открытие файла, программе надо сообщить,

где он расположен. Для этого файловая переменная должна быть связана с именем

файла с помощью процедуры AssignFile. Первый параметр этой процедуры — имя

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

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

AssignFilef F, 'test.daf I;

AssignFilei F, 'c:\projects\test.dat1 ];

Процедур открытия файлов в Паскале две. Первая из них, Rewrite, используется

для открытия файла в режиме записи (при этом происходит полное уничтожение его содержимого, а размер файла становится равным нулю), а вторая, Reset, — для

открытия файла в режиме чтения (при этом вносить изменения в содержимое файла не разрешается). Процедура Rewrite может также применяться для создания нового

файла.

Каждая из этих процедур может иметь второй необязательный параметр, который

определяет длину записи нети пикированного файла в байтах.

var F: File;

Rewrite! F, 1

ЗАМЕЧАНИЕ В программе одновременно может быть открыто большое число

фойлов (до нескольких сотен). Конкретное значение определяется

настройками Windows.

Запись в файл

Для записи данных в файл, имеющий определенную структуру (описанный с

помощью ключевых слов File of...), применяется процедура Write. В качестве пер-

вого параметра указывается файловая переменная, а далее следует список пере-

менных типа, соответствующего типу файла.

var F: File of TMyFile;

A, MyData, N5: TMyFile;

Rewrite(F };

Write! F, N5, MyData |;

Значения из этих переменных будут последовательно записаны в конец файла.

Считывание из файла

Чтобы считать данные из файла, надо использовать процедуру Read. Она записы-

вается аналогично процедуре Write.

var F: File of TMyFile;

A, MyData, N5: TMyFile;

Reset (F);

Read(F, MyData, A);

Начиная с текущей позиции в файле F (исходно это начало файла) из него будут

последовательно считаны блоки данных, соответствующие размерам экземпляра

класса TMyFile, и записаны в переменные MyData и А. По окончании операции ввода

текущая позиция в файле F сдвинется на два элемента.

Специальная процедура procedure Truncate(var F);

позволяет отсечь (удалить) все содержимое файла, начиная с текущей позиции до его конца.

Закрытие файла

По завершении работы с файлом его надо закрыть. Это выполняется вызовом про-

цедуры CloseFile:

CloseFilef (F);

 



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 223; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.222.212.138 (0.007 с.)