«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

 

Ќетипизированные файлы

¬ведение нетипизированных файлов в систему Turbo Pascal было вызвано стремлением повысить эффективность программ, участвующих в интенсивном обмене с внешними наборами данных. Ёти файлы, в отличие от рассмотренных выше, не имеют строго определенного типа.

Ќетипизированный файл рассматриваетс€ в Pascal как совокупность символов или байтов. ѕредставление Char или Byte не играет никакой роли, а важно лишь с точки зрени€ объема пам€ти, занимаемого данными. “акое представление стирает все различи€ между файлами независимо от типа их объ€влени€. Ќа практике это приводит к тому, что любой файл, подготовленный как текстовый или типизированный, можно открыть и начать работу с ним, как с нетипизированным набором данных. ƒл€ определени€ в программе нетипизированного файла служит зарезервированное слово File:

var UntypedFile : File;

¬нутренн€€ реализаци€ поддержки таких файлов наиболее близка к аппаратной поддержке работы с внешними носител€ми. «а счет этого достигаетс€ максимальна€ скорость доступа к наборам данных. ѕри работе с нетипизированными файлами не тратитс€ врем€ на преобразование типов и поиск управл€ющих последовательностей, достаточно считать содержимое файла в определенную область пам€ти.

Ќетипизированный файл €вл€етс€ файлом пр€мого доступа, что говорит о возможности одновременного использовани€ операций чтени€ и записи. ƒл€ таких файлов самым важным параметром служит длина записи в байтах. ќткрытие нетипизированного файла с длиной записи в 1 байт можно выполнить следующим образом:

Rewrite(UntypedFile, 1);

или

Reset(UntypedFile, 1);

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

ќсобенность аппаратной поддержки заключаетс€ в том, что при обращении к внешнему устройству минимально возможным объемом данных дл€ считывани€ €вл€ютс€ 128 байт. ¬ стремлении добитьс€ наибольшей эффективности файловых операций в Turbo Pascal прин€то, соглашение, по которому длина записи нетипизированного файла по умолчанию составл€ет 128 байт. ѕоэтому после открыти€ файла с помощью вызовов

Rewrite(UntypedFile);

или

Reset(UntypedFile);

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

»спользу€ дл€ базовых операций ввода-вывода с нетипизированными файлами стандартные процедуры Read и Write, нельз€ добитьс€ большой эффективности в скорости передачи данных. ѕоэтому только дл€ данного типа файлов в Turbo Pascal введены две новые процедуры, поддерживающие операции ввода-вывода с более высокой скоростью.

BlockReadCvar F : file ;

var Buf;

Count : word {;Result:word};

Ёта процедура считывает из файла F определенное число блоков в пам€ть, начина€ с первого байта переменной Buf. ѕараметр Buf представл€ет любую переменную, используемую дл€ накоплени€ информации из файла F. ѕараметр Count задает число считываемых блоков. ѕараметр Result €вл€етс€ необ€зательным, после вызова процедуры возвращаетс€ число считанных записей.

»спользование параметра Result подсказывает, что число считанных блоков может быть меньше, чем задано параметром Count. ≈сли Result указан при вызове, то ошибки ввода-вывода в такой ситуации не произойдет. ƒл€ отслеживани€ этой и других ошибок чтени€ можно использовать опции {$1-}, {$1+} и функцию IOresult

BlockWrite(var F : file ; var Buf; Count:word {;Result;word});

Ёта процедура предназначена дл€ быстрой передачи в файл F определенного числа записей из переменной Buf. ¬се параметры процедуры BlockWrite аналогичны соответствующим параметрам процедуры BlockRead. ќбе процедуры выполн€ют операции ввода-вывода блоками. ќбъем блока в байтах определ€етс€ по формуле:

ќбъем = Count * RecSize,

где RecSize Ц размер записи файла, заданный при его открытии. —уммарный объем разового обмена не должен превышать 64  байт. ѕомимо скорости передачи данных, преимущество использовани€ этих процедур заключаетс€ в предоставлении программисту возможности самосто€тельно определ€ть размер буфера дл€ файловых операций.

Ёта возможность играет значительную роль в тех задачах, где необходимо жесткое планирование ресурсов.


”знать как сэкономить в кризис моно на сайте ekonom-it.ru

“екстовые файлы в ѕаскале »нтегрированна€ инструментальна€ оболочка “урбо ѕаскал€ »нтегрированна€ инструментальна€ оболочка “урбо ѕаскал€ Ќазначение функциональных клавиш “ипизированные файлы «адани€ на строковый тип данных Ѕиблиотечный стандартный модуль Graph ”пражнение є1 дл€ обработки строк ”пражнение по созданию и обработке линейного массива ”пражнение на линейную сортировку массива 


 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом