Функции
b-read
(in byte-number)
b-read-double
(in &optional (len 8))
b-read-float
(in &optional (len 4))
b-read-int
(in &optional (len 4))
b-read-long
(in &optional (len 4))
b-read-long-long
(in &optional (len 8))
b-read-short
(in &optional (len 2))
b-read-string
(in byte-number &key (encoding cp1251))
Описание: метод b-read-string возвращает строку, считываемую из бинарного потока in. При этом из потока считывается количество байт byte-number. Начальные и конечные нуль-символы из строки исключаются. Символы декодируются из кодировки encoding.
Пример использования:
(progn
(let ((buffer-length 900)
(path
(merge-pathnames
#P"trd/bin-01.bin"
(asdf:system-source-directory :recoder/binary))))
(let ((w (open-b-write path)))
(b-write-string w *s-u* buffer-length :external-format :KOI8-U)
(close w))
(let* ((r (open-b-read path))
(rez (b-read-string r buffer-length :encoding :KOI8-U)))
(close r)
rez)))
b-write
(byte-list out &optional (byte-number (length byte-list)))
b-write-double
(val out &optional (len 8))
b-write-float
(val out &optional (len 4))
b-write-int
(int-val out &optional (len 4))
b-write-long
(int-val out &optional (len 4))
b-write-long-long
(int-val out &optional (len 8))
b-write-short
(int-val out &optional (len 2))
b-write-string
(out string byte-number &key (external-format cp1251))
Описание: метод b-write-string выводит в поток out строку string.
Переменые:
- out - двоичныый поток вывода;
- string - строка, подлежащая выводу в поток;
- external-format - кодировка, в которой строка будет сохранена. Список кодировок доступный на данный момент можно получить при помощи вызова следующей функции: (babel:list-character-encodings);
- byte-number - количество байт до которых усекается строка.
Пример использования:
(let ((w (open-b-write
(merge-pathnames #P"trd/bin-01.bin"
(asdf:system-source-directory :recoder)))))
(b-write-string w *s-u* :external-format :KOI8-U :byte-number 200)
(close w))
decode-string
.int-to-list
(int-val len)
Выполняет преобразование целого числа в список целых чисел, находящихся в диапазоне от 0 до 255.
Пример использования:
(int-to-list 2050 4) => (2 8 0 0)
list-to-int
(list-of-int)
Описание: функция list-to-int выполняет преобразование списка целых чисел находящихся в диапазоне 0 - 255 в целое число.
Пример использования:
(list-to-int '(2 8 0 0)) => 2050
(list-to-int '(1 0)) => 1
(list-to-int '(0 1)) => 256
open-b-read
(path)
Описание: функция open-b-read выполняет открытие файла для бинарного чтения.
Пример использования см. в описании к функции open-b-write.
open-b-write
(path)
Описание: функция open-b-read выполняет открытие файла для бинарной записи.
Пример использования:
(let ((val 2050)
(rez nil)
(fname (merge-pathnames
#P"trd/binary.bin1"
(asdf:system-source-directory
(asdf:find-system "recoder/binary")))))
(let ((out (open-b-write fname)))
(b-write-short val out)
(close out))
(let ((in (open-b-read fname)))
(setf rez (b-read-short in))
(close in)
rez))