Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 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 Кб, 866 просмотров)
Тип файла: zip BytesDemo.zip (3.4 Кб, 1160 просмотров)
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
GRAY_WOLF (16.09.2008), Romanzes (16.09.2008), Skythrone (23.09.2008)
Старый 23.09.2008, 10:56   #2
Skythrone
ПроЭктировщик
 
Регистрация: 02.07.2008
Сообщений: 105
Написано 7 полезных сообщений
(для 14 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Да, удобная штука, спасибо.

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

Сообщение от Skythrone Посмотреть сообщение
Да, удобная штука, спасибо.

А есть ли возможность использовать одновременно два и более таких массивов?
Пока нет. Но что тебе мешает сделать один большой массив и часть его использовать для хранения одной информации, часть для другой?

PS: До меня только щас дошло. С помощью этой библиотеки ещё можно делать эмуляторы разных устройств, например, Spectrum. Просто хранить прошивку устройства в массиве и обработчик команд процессора написать...
(Offline)
 
Ответить с цитированием
Старый 14.12.2010, 21:02   #4
FighteR
Оператор ЭВМ
 
Аватар для FighteR
 
Регистрация: 02.10.2010
Сообщений: 29
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Сообщение от odd Посмотреть сообщение
Пока нет. Но что тебе мешает сделать один большой массив и часть его использовать для хранения одной информации, часть для другой?

PS: До меня только щас дошло. С помощью этой библиотеки ещё можно делать эмуляторы разных устройств, например, Spectrum. Просто хранить прошивку устройства в массиве и обработчик команд процессора написать...
эт че можно эмуль на паскале )) круто!!! а можно изменить что бы хранило не по 1му байту а по несоклько в одной ячейке?
(Offline)
 
Ответить с цитированием
Старый 16.12.2010, 19:01   #5
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Нет, увы. Хранить в одном байте несколько байт пока никому не удавалось.
(Offline)
 
Ответить с цитированием
Старый 16.12.2010, 19:47   #6
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Сообщение от odd Посмотреть сообщение
Нет, увы. Хранить в одном байте несколько байт пока никому не удавалось.
Видимо, имеется в виду возможность хранения нескольких байт в ячейке соответствующего размера (т.е., массив int'ов, с ячейками по 4 байта, например).
(Offline)
 
Ответить с цитированием
Старый 17.12.2010, 16:08   #7
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Я это заранее предусмотрел и в массиве байт можно хранить числа как int так и short, ну и byte конечно. Только при чтении этих чисел нужно на соответствующее количество байт нужно сдвигать и указатель.
А для извлечения 4 байт по отдельности нужно ещё и использовать библиотеку Lib_bits для битовых операций.
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 20:45   #8
nil0q
ПроЭктировщик
 
Аватар для nil0q
 
Регистрация: 30.06.2009
Адрес: Челябинская обл.
Сообщений: 111
Написано 32 полезных сообщений
(для 99 пользователей)
Ответ: Lib_bytes - Динамический массив байт

А можно создать на основе массива поток ввода-вывода и подключить его к плееру???
Если возможно, то это будет супер
Можно будет программно вписать в массив звуковые данные (wave) и проиграть. И полузится синтезатор звука
А если плееру задать команду "capture://audio", то можно и писать звук в массив
__________________
Аинéжарбази овокáсьф имятнэ́меле как, имякщтóт и имяини́ль оклёт ими́ньдо сяюзлёп, ильсы́м эынэвьтспóс ышáн мóнян тягалзи, эы́жущт тят-ищт сант-ищтý анакаккáт; áкызэй овóваримь авотэ́ як итя́ммарг тыжýлс аирьтэмяег аянлетя́трэщтанот, мадóраи мынавóзарбо мэ́сьф мынтáняп авокáныдя, икиньхэ́ть мóкызэй астэя́львэй шóтрэщт ильсэ́й.
Щамóпф раткáдэрь оидюá!
(Offline)
 
Ответить с цитированием
Старый 21.12.2010, 00:34   #9
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Гм, интересная идея.
(Offline)
 
Ответить с цитированием
Старый 07.03.2011, 19:56   #10
nil0q
ПроЭктировщик
 
Аватар для nil0q
 
Регистрация: 30.06.2009
Адрес: Челябинская обл.
Сообщений: 111
Написано 32 полезных сообщений
(для 99 пользователей)
Ответ: Lib_bytes - Динамический массив байт

Вот и статейка
http://www.mobilab.ru/articles/84/
__________________
Аинéжарбази овокáсьф имятнэ́меле как, имякщтóт и имяини́ль оклёт ими́ньдо сяюзлёп, ильсы́м эынэвьтспóс ышáн мóнян тягалзи, эы́жущт тят-ищт сант-ищтý анакаккáт; áкызэй овóваримь авотэ́ як итя́ммарг тыжýлс аирьтэмяег аянлетя́трэщтанот, мадóраи мынавóзарбо мэ́сьф мынтáняп авокáныдя, икиньхэ́ть мóкызэй астэя́львэй шóтрэщт ильсэ́й.
Щамóпф раткáдэрь оидюá!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Lib_array2d - Динамический двухмерный массив odd Библиотеки 18 23.11.2013 01:31
Как сделать динамический массив целых чисел? artemff Основной форум 2 31.12.2009 03:51
Динамический массив - способы реализации! ELIAS Blitz3D 21 07.03.2009 22:21
Безразмерный массив Harter 2D-программирование 4 17.01.2009 01:17
Запаковка флагов в один байт. HolyDel Полезные функции 3 11.12.2008 12:23


Часовой пояс GMT +4, время: 02:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com