Считывание символов без учета кодировки

Сообщения
14
Реакции
6
(Заранее извиняюсь, если не по теме. Первый раз что-то пишу тут, а потому еще не освоился)
Здраствуйте. Я делаю плагин, в котором есть работа с текстом и мне нужно сделать проверку на кол-во символов, которые ввел игрок. Делаю пока так

Код:
stock get_symvols(dest[], len)
{
    new Float:total; //Переменная, куда будем суммировать наши символы
    for(new i = 0; i <= len; i++)
    {
        if(get_char_bytes(dest[i]) == 1) total += 1.0; // Если проверяемый символ кодируется одним байтом, то прибавляем 1 к нашей переменной
        else if(get_char_bytes(dest[i]) > 1) total += 0.5; //Если же символ кодируется более одного байта, то прибавляем половину
    }
    return floatround(total, floatround_ceil); // Возвращаем, округливая до целового в большую сторону
}
Есть ли какой-нибудь другой способ? В тырнетах искал и там только strlen и ему подобные функции, которые возвращают кол-во байтов (А мы помним, что En-символы = 1 байт, Ru-символы = 2 байта), а не символов, потому подсчет неверный. Может, я что-то пропустил и люди давно пользуются какими-то нормальными способами?
 
Сообщения
14
Реакции
6
ArKaNeMaN, О, все-таки уже придумали способ лучше)

Ну, а то, что в amxx такого нет, я давно понял в попытках найти.
Спасибо за помощь!
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
Soso4ek, в 1.9.0 там уже это помойму не требуется, я делал себе приставки, все ровно, не смотря что русскуий текст или английский. А вот версия ниже 1.8.2 там уже думать надо
 
Сообщения
1,055
Реакции
212
Предупреждения
9
Помог
6 раз(а)
Code_0xABC, Тут речь не про приставки , а про вводимый игроком текст
По байтам будешь считать будут разные результаты
Привет - Пpивет
Вроде одинаково, а байты разные
Ну я не учу, а так если вдруг ВЫ не так поняли или же я вас не так понял
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
BiZaJe, вообще тз только считает, а то что реализовывает не понятно)
 
Сообщения
14
Реакции
6
Code_0xABC, у меня 1.9.0 и все равно при попытке считать стандартными функциями оно возвращает именно байты, а мне нужны символы. Ну, а реализовать я пытался выдачу префиксов у игроков. Код уже полностью готов и рабочий. Просто хотел как-то улучшить его
 
  • Нравится
Реакции: fgd

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу