uuencode

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Кодирует двоичные данные (массив байтов) в текстовую форму методом UUE. Кодирование данных в текст может пригодиться для передачи данных или сохранения данных в свойстве с помощью функции setproperty().

Параметры:

(dest[], const source[], numbytes, maxlength=sizeof dest)
dest[] Массив для записи строки с закодированными данными. Может совпадать с массивом source, если размер позволяет вместить строку.
const source[] Данные, которые будут закодированы в текст и записаны в dest.
numbytes Размер кодируемых данных в байтах (не ячейках!)
maxlength Размер массива dest в ячейках (необязательный параметр).


Возвращаемое значение:

Длина строки с закодированными данными.

Info rhombus.png
Примечание
В конце строки с закодированными данными добавляется символ '\n'.


Bug.png
Баг Pawn
Функция непригодна к использованию: из-за ошибки в реализации вместо закодированных данных она возвращает пустую строку. На момент написания статьи баг исправлен только в pawn-3.2-plus.
Приведённый ниже пример кода не работает в SA-MP.


Пример использования:

main()
{
    static const data[] = { 0x00112233, 0x44556677, 0x8899AABB, 0xCCDDEEFF };
    const numbytes = sizeof(data) * (cellbits / charbits);
    new string[18];
    new result = uuencode(string, data, numbytes);
    printf("%s"); // "0,R(1`'=F542[JIF(_^[=S`"
    printf("Длина строки: %d"); // "Длина строки: 26"
}


См. также: