PvPGN:Clantag
Материал из WikiServia
В БД короткое название клана (clantag) содержится в виде числа.
В коротком названии клана может быть не более 4 символов.
Примеры:
1129532928 = CSN 2018735360 = xSu
Для получения его в виде строки нужно перевести число в integer, затем каждый байт в ASCII символ.
C (код из PvPGN)
int str_to_clantag(const char *str) { int clantag = 0; if (!str) return 0; if (str[0]) { clantag = str[0] << 24; if (str[1]) { clantag += str[1] << 16; if (str[2]) { clantag += str[2] << 8; if (str[3]) clantag += str[3]; } } } return clantag; }
PHP
function str_to_clantag($int) { $str = pack("N", $int); if ($find = strpos($str, "\0")) $str = substr($str, 0, $find); return $str; }
Perl (командная строка)
perl -e "print pack('N',1129532928)"
Bat-файл
perl -e "$a=pack('N',%1);print substr($a,0,index($a,chr(0))"
Запуск: tag2str.bat число
Обратное преобразование
perl -e "print unpack('N','xSu'. chr(0)x4);"
Bat-файл
perl -e "print unpack('N','%1'. chr(0)x4);"
Запуск: str2tag.bat строка