Ispacked
Материал из Pawno Info Wikipedia
Описание:
Проверяет, является ли строка упакованной, или нет.
Параметры:
(string[])
| string | строка для проверки на факт упаковки. |
Возвращаемые значения:
false - если строка не запакована.
true - если строка запакована.
true - если строка запакована.
|
Примечание |
Это имя функции начинается со строчной буквы. |
|
Баг Pawn |
Функция возвращает неправильное значение, если упакованная строка начинается с ячейки, в которой самый значимый бит установлен в 1:ispacked(!"строка") // выдаст false, хотя строка упакованная |
|
Подсказка |
Для исправления бага с функцией используйте следующий код:stock ispacked(string[])
{
#emit lref.s.pri string
#emit const.alt ucharmax
#emit geq
#emit retn
return 0;
} |
Пример использования:
stock PrintPackStatus(const name[], const string[]) printf("Строка %s %sупакована", name, ispacked(string) ? "" : "не ");
main()
{
// Строка str1 упакована, а str2 объявлена в неупакованном виде.
new str1[] = !"abcd";
new str2[] = "efgh";
// Выведем информацию о том, упакованы ли строки
PrintPackStatus("str1", str1); // "Строка str1 упакована"
PrintPackStatus("str2", str2); // "Строка str2 не упакована"
// Теперь распакуем str1 и, наоборот, упакуем str2
strpack(str1, str1);
strunpack(str2, str2);
// Выведем информацию об упакованности строк ещё раз
PrintPackStatus("str1", str1); // "Строка str1 не упакована"
PrintPackStatus("str2", str2); // "Строка str2 упакована"
}
Связанные функции
Следующие функции также могут быть полезны, поскольку они так или иначе связаны с рассматриваемой функцией.