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

В отличие от текстовых файлов, типизированные файлы имеют более строгую внутреннюю структуру. При записи в них записывается машинное представление очередного компонента. Внутри компоненты файла ничем не отделяются друг от друга. Но найти любой компонент несложно – ведь каждый занимает в файле одинаковый объем равный размеру его типа.

Var f: file of string [60];

Не похож на текстовый файл из строк, в нем не будет символов конца строки, а будет сплошная последовательность символов кратная 61 (60 символов в строке плюс 1 байт длины строки). Если реальные значения строк короче 60 символов, все равно на запись отведется 61 символ (излишки будут забиты мусором).

Преимущества типизированных файлов:

· эффективным образом хранят числовую информацию;

· позволяет считывать и записывать сложные структуры одной командой.

Type

Dim_ =array [1..100, 1..20] of real;

Var

Xx,yy:dim_;

Fin, fout: file of dim_;

---------------------------

Begin

{ связывание и открытие файлов }

Read (fin, xx); { считывается весь массив }

------------------------- { обработка массива }

Write (fout, yy); { запись всего массива }

End.

Недостатки типизированных файлов:

· неоптимальны для хранения строк;

· имеют сложное внутреннее представление (просмотр невозможен).

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

Указатели и динамическая память

Динамическая память

Память под глобальные переменные и типизированные const выделяется статически, т.е. на стадии компиляции и находится в непрерывной области ОП, называемой сегментом данных. Длина сегмента 64 кб.

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

Динамическая память предоставляется программе при ее работе (т.е. во время выполнения) за исключением:

¨ сегмента данных (64 кб),

¨ стека (16 кб),

¨ собственно тела программы.

Необходимость в куче возникает в следующих случаях:

1.Используются переменные, имеющие довольно большой размер или превышающие 64 кб.

2.Когда необходимо динамическое изменение числа элементов в структурах, либо число элементов непредсказуемо (динамические списковые структуры данных).

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: