Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Создание ярлыка на Рабочем столе
Категория: Приложение
Категория: Приложение
Как получить размер текстового файла, не открывая его
Категория: Файловая система
Категория: Файловая система
Создать *.mdb-файл и таблицу в ней
Категория: Базы данных
Категория: Базы данных
Дата изменения файла
Категория: Файловая система
Категория: Файловая система
Автоматическое определения кодировки текста
Категория: Текст и строки
Категория: Текст и строки
Группировка TopAdvGrid
Категория: Компоненты
Категория: Компоненты
BDE. Динамическое создание псевдонима
Категория: Базы данных
Категория: Базы данных
Узнать используется ли файл другим приложением
Категория: Базы данных
Категория: Базы данных
Проверить существование определённого URL
Категория: Базы данных
Категория: Базы данных
Определить МАС-адрес карты
Категория: Интернет и Сети
Категория: Интернет и Сети
Delphi - Справочник: Packed
Packed
|
type Name = Packed array[...] of ...; type Name = Packed class ... end; type Name = Packed object ... end; type Name = Packed record ... end; |
Ключевое слово (Unit )
|
Уплотняет сложные типы данных в минимальный объём памяти
|
Описание:
|
Ключевое слово Packed говорит Delphi минимизировать память, взятую определенным объектом. Обычно, сложные типы данных, такие как записи, имеют свои элементы по 2, 4 или 8 байта, соответствующие типам данных. Например, поле Word было бы 4-байтовое. Записи также дополняются, для гарантии, что они закончены, 4-х байтовой границей. Упаковка отменяет это, сжимая данные в наименьшую память, хотя с последующим уменьшенным доступом выполнения. |
Пример кода: Упаковка записи для уменьшения памяти
|
type // Объявление распакованной записи TDefaultRecord = Record name1 : string[4]; floater : single; name2 : char; int : Integer; end; // Объявление запакованной записи TPackedRecord = Packed Record name1 : string[4]; floater : single; name2 : char; int : Integer; end; var defaultRec : TDefaultRecord; packedRec : TPackedRecord; begin ShowMessage('Размер обычной записи = '+IntToStr(SizeOf(defaultRec))); ShowMessage('Размер запакованной записи = '+IntToStr(SizeOf(packedRec))); end;
Результат:
|
Размер обычной записи = 20 Размер запакованной записи = 14 |
Примечание:
|
Примеры распакованных данных: Word = 2 bytes LongWord = 4 bytes Single = 4 bytes Double = 8 bytes |