|
16.09.2008, 06:23
|
#1
|
Мастер
Регистрация: 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
Пожалуйста, потестируйте и скажите что ещё добавить кому не хватило какой-нибудь функции. У меня в планах ещё и отправлять и получать такие байтовые массивы по сети в качестве пакетов, что откроет просто невероятные возможности при сетевом взаимодействии. Пока же данную библиотеку можно применять, например: при обработке картинок; более экономичной по использованию памяти работе со строками; организации своих массивов каких-либо структур и т.п.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
|
|
23.09.2008, 10:56
|
#2
|
ПроЭктировщик
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений (для 14 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Да, удобная штука, спасибо.
А есть ли возможность использовать одновременно два и более таких массивов?
|
(Offline)
|
|
24.09.2008, 06:03
|
#3
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Сообщение от Skythrone
Да, удобная штука, спасибо.
А есть ли возможность использовать одновременно два и более таких массивов?
|
Пока нет. Но что тебе мешает сделать один большой массив и часть его использовать для хранения одной информации, часть для другой?
PS: До меня только щас дошло. С помощью этой библиотеки ещё можно делать эмуляторы разных устройств, например, Spectrum. Просто хранить прошивку устройства в массиве и обработчик команд процессора написать...
|
(Offline)
|
|
14.12.2010, 21:02
|
#4
|
Оператор ЭВМ
Регистрация: 02.10.2010
Сообщений: 29
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Сообщение от odd
Пока нет. Но что тебе мешает сделать один большой массив и часть его использовать для хранения одной информации, часть для другой?
PS: До меня только щас дошло. С помощью этой библиотеки ещё можно делать эмуляторы разных устройств, например, Spectrum. Просто хранить прошивку устройства в массиве и обработчик команд процессора написать...
|
эт че можно эмуль на паскале )) круто!!! а можно изменить что бы хранило не по 1му байту а по несоклько в одной ячейке?
|
(Offline)
|
|
16.12.2010, 19:01
|
#5
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Нет, увы. Хранить в одном байте несколько байт пока никому не удавалось.
|
(Offline)
|
|
16.12.2010, 19:47
|
#6
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Сообщение от odd
Нет, увы. Хранить в одном байте несколько байт пока никому не удавалось.
|
Видимо, имеется в виду возможность хранения нескольких байт в ячейке соответствующего размера (т.е., массив int'ов, с ячейками по 4 байта, например).
|
(Offline)
|
|
17.12.2010, 16:08
|
#7
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Я это заранее предусмотрел и в массиве байт можно хранить числа как int так и short, ну и byte конечно. Только при чтении этих чисел нужно на соответствующее количество байт нужно сдвигать и указатель.
А для извлечения 4 байт по отдельности нужно ещё и использовать библиотеку Lib_bits для битовых операций.
|
(Offline)
|
|
18.12.2010, 20:45
|
#8
|
ПроЭктировщик
Регистрация: 30.06.2009
Адрес: Челябинская обл.
Сообщений: 111
Написано 32 полезных сообщений (для 99 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
А можно создать на основе массива поток ввода-вывода и подключить его к плееру???
Если возможно, то это будет супер
Можно будет программно вписать в массив звуковые данные (wave) и проиграть. И полузится синтезатор звука
А если плееру задать команду "capture://audio", то можно и писать звук в массив
__________________
Аинéжарбази овокáсьф имятнэ́меле как, имякщтóт и имяини́ль оклёт ими́ньдо сяюзлёп, ильсы́м эынэвьтспóс ышáн мóнян тягалзи, эы́жущт тят-ищт сант-ищтý анакаккáт; áкызэй овóваримь авотэ́ як итя́ммарг тыжýлс аирьтэмяег аянлетя́трэщтанот, мадóраи мынавóзарбо мэ́сьф мынтáняп авокáныдя, икиньхэ́ть мóкызэй астэя́львэй шóтрэщт ильсэ́й.
Щамóпф раткáдэрь оидюá!
|
(Offline)
|
|
21.12.2010, 00:34
|
#9
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
Гм, интересная идея.
|
(Offline)
|
|
07.03.2011, 19:56
|
#10
|
ПроЭктировщик
Регистрация: 30.06.2009
Адрес: Челябинская обл.
Сообщений: 111
Написано 32 полезных сообщений (для 99 пользователей)
|
Ответ: Lib_bytes - Динамический массив байт
__________________
Аинéжарбази овокáсьф имятнэ́меле как, имякщтóт и имяини́ль оклёт ими́ньдо сяюзлёп, ильсы́м эынэвьтспóс ышáн мóнян тягалзи, эы́жущт тят-ищт сант-ищтý анакаккáт; áкызэй овóваримь авотэ́ як итя́ммарг тыжýлс аирьтэмяег аянлетя́трэщтанот, мадóраи мынавóзарбо мэ́сьф мынтáняп авокáныдя, икиньхэ́ть мóкызэй астэя́львэй шóтрэщт ильсэ́й.
Щамóпф раткáдэрь оидюá!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:19.
|