Сейчас 07:17:58 Пятница, 3 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Поиск русских букв в строке
[Вопрос] Поиск русских букв в строке
Ty3uKДата: Суббота, 25 Августа 2012, 11:14:27 | Сообщение # 1
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Как можно найти русские буквы в строке?
Кроме перебора алфавита

И что делает функция GetLocalizedString(str)?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Суббота, 25 Августа 2012, 11:35:30 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
//! runtextmacro DeclareDictionary("integer", "boolean", "IntegerComparison")

library_once IntegerComparison {
    public bool less(int op1, int op2) { return op1 < op2; }
    public bool equal(int op1, int op2) { return op1 == op2; }
}

library Cirillic uses Dictionaryintegerboolean {
    private Dictionary_integer_boolean Dict;

    int GetNextCirillic(string s, int searchPos) {
        int l = StringLength(s);
        whilenot searchPos >= l {
            if Dict.Exists[StringHash(SubString(s, searchPos, searchPos + 1))] {
                return searchPos;
            }
           searchPos++;
         }
        return -1;
    }

    callback onInit() {
        string s = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
        int i = StringLength(s);
        Dict = Dictionary_integer_boolean.Create();
        loop {
            Dict[StringHash(SubString(s, i - 1, i))] = true;
            exitwhen i == 1;
            i--;
        }
        Dict.Rebuild();
    }
}
Прикрепления: Dictionary.j (11.5 Kb)


 

Ty3uKДата: Суббота, 25 Августа 2012, 12:13:15 | Сообщение # 3
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Ник, а не проще перевести входящую строку в верхний регистр и исключить маленткие буквы?

Добавлено (25 Августа 2012, 12:13:15)
---------------------------------------------
и как этим чудом пользоваться?


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Суббота, 25 Августа 2012, 12:50:35 | Сообщение # 4
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (Ty3uK)
а не проще перевести входящую строку в верхний регистр и исключить маленткие буквы?
Увы, StringCase работает исключительно с латиницей.
Quote (Ty3uK)
и как этим чудом пользоваться?
Code
void PrintAllCirillic(string s) {
    string result = "";
    int i = 0;
    loop {
        i = GetNextCirillic(s, i) + 1;
        exitwhen i == 0;//Если букв больше нет, GetNextCirillic возвращает -1.
        result += SubString(s, i - 1, i);
    }
    printf(result);
}

callback onInit() {
    PrintAllCirillic("З1д2р5авYстZ45ву&й, Мир!JASS2");
    //output: ЗдравствуйМир
}


 

Ty3uKДата: Суббота, 25 Августа 2012, 13:01:51 | Сообщение # 5
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
увы, адик как обычно начал ругаться и я написал свои костыли :)
спасибо за помощь :3


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Суббота, 25 Августа 2012, 13:03:47 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Да переустанови ты его уже. >_<

 

Ty3uKДата: Суббота, 25 Августа 2012, 13:05:28 | Сообщение # 7
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
на старый? в нем форов нет :(

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

SirNikolasДата: Суббота, 25 Августа 2012, 13:17:18 | Сообщение # 8
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
JNGP.

Добавлено (25 Августа 2012, 13:17:18)
---------------------------------------------

Quote (Ty3uK)
я написал свои костыли
Я так понимаю, есть массив букв русского алфавита, и в нем прямым проходом ищется каждая буква строки? Если так, то мой способ может быть быстрее до 8 раз.


 

Ty3uKДата: Суббота, 25 Августа 2012, 13:31:39 | Сообщение # 9
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
я понимаю, но я юзаю это только один раз при забивании мультика
так что мне сойдет, спасибо :)

а жнгп потом скачаю, я с телефона


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

bubliqДата: Понедельник, 27 Августа 2012, 14:26:50 | Сообщение # 10
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
Очевидно, что русские символы - не нужны.
 

HexingДата: Понедельник, 27 Августа 2012, 15:20:37 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (bubliq)
Очевидно, что русские символы - не нужны.


очевидно ваш пост тоже


 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Поиск русских букв в строке
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz