Lib_bytes - Динамический массив байт
Вложений: 2
Ещё один пример динамического массива.
Пока функции такие: 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 Пожалуйста, потестируйте и скажите что ещё добавить кому не хватило какой-нибудь функции. У меня в планах ещё и отправлять и получать такие байтовые массивы по сети в качестве пакетов, что откроет просто невероятные возможности при сетевом взаимодействии. Пока же данную библиотеку можно применять, например: при обработке картинок; более экономичной по использованию памяти работе со строками; организации своих массивов каких-либо структур и т.п. |
Ответ: Lib_bytes - Динамический массив байт
Да, удобная штука, спасибо.
А есть ли возможность использовать одновременно два и более таких массивов? |
Ответ: Lib_bytes - Динамический массив байт
Цитата:
PS: До меня только щас дошло. С помощью этой библиотеки ещё можно делать эмуляторы разных устройств, например, Spectrum. Просто хранить прошивку устройства в массиве и обработчик команд процессора написать... |
Ответ: Lib_bytes - Динамический массив байт
Цитата:
|
Ответ: Lib_bytes - Динамический массив байт
Нет, увы. Хранить в одном байте несколько байт пока никому не удавалось.
|
Ответ: Lib_bytes - Динамический массив байт
Цитата:
|
Ответ: Lib_bytes - Динамический массив байт
Я это заранее предусмотрел и в массиве байт можно хранить числа как int так и short, ну и byte конечно. Только при чтении этих чисел нужно на соответствующее количество байт нужно сдвигать и указатель.
А для извлечения 4 байт по отдельности нужно ещё и использовать библиотеку Lib_bits для битовых операций. |
Ответ: Lib_bytes - Динамический массив байт
А можно создать на основе массива поток ввода-вывода и подключить его к плееру???
Если возможно, то это будет супер :super: Можно будет программно вписать в массив звуковые данные (wave) и проиграть. И полузится синтезатор звука :-) А если плееру задать команду "capture://audio", то можно и писать звук в массив :cool: |
Ответ: Lib_bytes - Динамический массив байт
Гм, интересная идея.
|
Ответ: Lib_bytes - Динамический массив байт
Вот и статейка
http://www.mobilab.ru/articles/84/ |
Часовой пояс GMT +4, время: 23:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot