Recoder » RECODER/BINARY

Функции

b-read(in byte-number)
Описание: функция b-read выполняет чтение byte-number количества байт из бинарного потока in.
b-read-double(in &optional (len 8))
Описание: функция b-read-double выполняет чтение длинного (8 байт) числа с плавающей точкой из бинарного потока in.
b-read-float(in &optional (len 4))
Описание: функция b-read-float выполняет чтение короткого (4 байта) числа с плавающей точкой из бинарного потока in.
b-read-int(in &optional (len 4))
Описание: функция b-read-int выполняет чтение беззнакового целого (4 байта) числа из бинарного потока in.
b-read-long(in &optional (len 4))
Описание: функция b-read-long выполняет чтение длинного (4 байта) беззнакового целого числа из бинарного потока in.
b-read-long-long(in &optional (len 8))
Описание: функция b-read-long-long выполняет чтение очень длинного (8 байт) беззнакового целого числа из потока in, окрытого в двоичном режиме.
b-read-short(in &optional (len 2))
Описание: функция b-read-short выполняет чтение короткого (2 байта) беззнакового целого из бинарного потока in.
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)))
Выполняет запись bite-number элементов списка byte-list в бинарный поток вывода out.
b-write-double(val out &optional (len 8))
Описание: функция b-write-float выполняет запись длиного (8 байт) числа с плавающей точкой в бинарный поток out.
b-write-float(val out &optional (len 4))
Описание: функция b-write-float выполняет запись короткого (4 байта) числа с плавающей точкой в бинарный поток out.
b-write-int(int-val out &optional (len 4))
Описание: функция b-write-short выполняет запись короткого (4 байта) беззнакового целого в бинарный поток out.
b-write-long(int-val out &optional (len 4))
Описание: функция b-write-long выполняет запись длинного (4 байта) беззнакового целого в бинарный поток out.
b-write-long-long(int-val out &optional (len 8))
Описание: функция b-write-long-long выполняет запись очень длинного (8 байта) беззнакового целого в бинарный поток out.
b-write-short(int-val out &optional (len 2))
Описание: функция b-write-short выполняет запись короткого (2 байта) беззнакового целого в бинарный поток out.
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))

No node with name 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))