Показать сообщение отдельно
Старый 16.09.2008, 06:23   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Сообщение Lib_bytes - Динамический массив байт

Ещё один пример динамического массива.
Пока функции такие:

integer Dim(len: integer) - Выделить в памяти массив байт длинной len
Функция возвращает 0 если операция прошла успешно или -1 если нет (например, не хватает оперативки).
Если len задать равной 0 происходит очистка памяти с вызовом Сборщика Мусора.

Clear - Очистка памяти от различных временных массивов.
Крайне рекомендуется вызывать после операций с картинками и длинными строками.

integer GetLen - Функция возвращает длину массива в байтах

PokeByte(pos: integer; b: integer) - Записать в ячейку под номером pos байт b

integer PeekByte(pos: integer) - Считать байт из ячейки памяти по адресу pos

PokeInt16(pos: integer; b: integer) - Записать 2 байта из числа b по смещению pos

integer PeekInt16(pos: integer) - Считать 2 байта по адресу pos

PokeInt32(pos: integer; b: integer) - Записать 4 байта из числа b по смещению pos

integer PeekInt32(pos: integer) - Считать 4 байта по адресу pos

integer PokeImage(pos: integer; im: image) - Записать в память картинку
Функция возвращает количество записанных байт (равна высота * ширина * 4).

image PeekImage(pos: integer; w: integer; h: integer) - Считать картинку по адресу pos
w и h - ширина и высота записанной картинки в пикселах.

integer PokeUTF(pos: integer; s: string) - Записать в память строку
Функция возвращает количество записанных байт.

string PeekUTF(pos: integer; len: integer) - Считать из памяти по адресу pos строку длиной len

Пожалуйста, потестируйте и скажите что ещё добавить кому не хватило какой-нибудь функции. У меня в планах ещё и отправлять и получать такие байтовые массивы по сети в качестве пакетов, что откроет просто невероятные возможности при сетевом взаимодействии. Пока же данную библиотеку можно применять, например: при обработке картинок; более экономичной по использованию памяти работе со строками; организации своих массивов каких-либо структур и т.п.
Вложения
Тип файла: zip Lib_bytes.zip (2.8 Кб, 888 просмотров)
Тип файла: zip BytesDemo.zip (3.4 Кб, 1199 просмотров)
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
GRAY_WOLF (16.09.2008), Romanzes (16.09.2008), Skythrone (23.09.2008)