Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: работа с битами\n

18 views
Skip to first unread message

Sergio Basan

unread,
Sep 9, 2010, 10:35:09 PM9/9/10
to
> SB> Чем правильно заменить (open "in" :element-type '(unsigned-byte 6))?

> SB>

> SB> Потому что с таким :element-type ф-я open работает не во всех ОС.

> SB> Хотелось бы кроссплатформенного решения.

>

> (unsigned-byte 8) работает во всех реализациях.

>

> Cначала считываем, например, с помощью read-byte или read-sequence,

> затем извлекаем биты.

Ты можешь подсказать, как реализовать макросс для считывания по 7 бит? В

общий чертах.

И еще, если у тебя есть время - соответствуют ли мои сообщения

техническим стандартам/традициям фидо? Про /n в теме письма знаю.

.

Dmitriy Ivanov

unread,
Sep 10, 2010, 9:12:42 AM9/10/10
to
Sergio Basan wrote on Fri, 10 Sep 2010 06:35:09 +0400 06:35:

SB>> (unsigned-byte 8) работает во всех реализациях.
SB>> Cначала считываем, например, с помощью read-byte или
SB>> read-sequence, затем извлекаем биты.
SB>
SB> Ты можешь подсказать, как реализовать макросс для считывания по 7
SB> бит? В общий чертах.

Hе думаю, что это будет макрос. Скорее функция.
Hапример, считываешь по 7 байт.

(loop with octets = (make-array 7 :element-type '(unsigned-byte 8)))
for position = (read-sequence octets stream)
until (= position 0)
nconc (loop for i upfrom 0 below (* 8 position) by 7
collect (logior (ldb (byte ...) (aref octets
...))))

и т.д.

В качестве примера см. файл t1-font.lisp в дистрибутиве CL-PDF.

SB> И еще, если у тебя есть время - соответствуют ли мои сообщения
SB> техническим стандартам/традициям фидо? Про /n в теме письма знаю.

Я не особо разбираюсь в традициях ФИДО, но Usenet - вполне соответствуют.
--
Dmitriy Ivanov
lisp.ystok.ru


0 new messages