XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
agentex

offline
Опыт: 34,534
Активность:
Не работает функция.
вот написал функцию для проверки, содержит ли в себе заданная строка заданную подстроку.
Код:
function FindSubString takes string s, string sub returns boolean
local integer sl = StringLength(s)
local integer subl = StringLength(sub)
local integer i = 1
local boolean b = false
loop
if SubString(s, i, ((i+subl)-1)) == sub then
  set i = sl
  set b = true
endif
set i = i + 1
exitwhen (i+subl) > sl
endloop
return b
endfunction

Весьма странно, но даже на FindSubString("a", "a") она возвращает FALSE! В ЧЕМ ДЕЛО?
Старый 16.10.2008, 20:35
J
expert
offline
Опыт: 48,747
Активность:
пробни таг...
Код:
function FindSubString takes string s, string sub returns boolean
    local integer sl = StringLength(s)
    local integer subl = StringLength(sub)
    local integer i = 0
    loop
        exitwhen i+subl > sl
        if SubString(s, i, i+subl) == sub then 
            return true
        endif
        set i = i + 1
    endloop
    return false
endfunction

Отредактировано Jon, 16.10.2008 в 21:28.
Старый 16.10.2008, 20:43
agentex

offline
Опыт: 34,534
Активность:
Jon, а где у тя set i = i + 1? или по твоему это лишнее?
Старый 16.10.2008, 21:10
J
expert
offline
Опыт: 48,747
Активность:
ах, ну да...
Старый 16.10.2008, 21:24
agentex

offline
Опыт: 34,534
Активность:
это ппц.. твой код работает, хотя не должен.
действуем по твоему FindSubString:
строка "abcde"
ищем "cd"
длина "cd" = 2
c = 3 символ
SubString("abcde", 3, 3+2) = SubString("abcde", 3, 5) получается так?
А ЭТО БУДЕТ НЕ "cd" а "cde" !!!
"cd" это 3,4! именно поэтому я поставил "-1"
почему так?
Старый 16.10.2008, 21:43
J
expert
offline
Опыт: 48,747
Активность:
Цитата:
твой код работает, хотя не должен.
O_O

Цитата:
"cd" это 3,4!
SubString("abcde", 3, 4) == "d"
SubString("abcde", 2, 4) == "cd"



не
Код:
| a   b   c   d   e
| |   |   |   |   |
| 0   1   2   3   4
а
Код:
|   a   b   c   d   e
| |   |   |   |   |   |
| 0   1   2   3   4   5

Отредактировано Jon, 16.10.2008 в 21:54.
Старый 16.10.2008, 21:49
Toadcop

offline
Опыт: 53,013
Активность:
agentex не пиши в названиях темы HELP! а то тебя умные модеры будут варнить =) я пофиксил пока не кто не видел :Р а что о чём я вообще ? xD
Старый 16.10.2008, 21:55
agentex

offline
Опыт: 34,534
Активность:
Toadcop, ок возьму на заметку.
Jon понятно, просто я на ГУИ ориентировался)
Старый 16.10.2008, 22:06
adic3x

offline
Опыт: 107,539
Активность:
Код:
function SubStringBJ takes string source, integer start, integer end returns string
    return SubString(source, start-1, end)
endfunction


вот как оно выглядит в тригерах...
Старый 17.10.2008, 10:29
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:34.