Проблема с GetWord.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Проблема с GetWord.

Post by Mirage »

Code: Select all

Sub GetWord( st, nom )
    ; (c) Edred
    ; Возвращает слово из строки str за номером num
    ; если такого слова нет - возвращаем ''
    ;
    ; Разделителем слов считаем пробел. Несколько пробелов подряд считаются за один.
    ; Функция сделана без рекурсии специально для считывания слов из сверхдлинных строк!
    ;
    VAR tmpst, i, dlin, kol = 0, start = 0
    dlin = len( st )
    For i=0 To dlin - 1
        If mid( st, i, 1 ) == ' ' OR i == dlin - 1 Then
            kol = kol + 1
            If kol == nom Then
                ; это первый пробел после нужного нам слова
                tmpst = mid( st, start, i - start )
                return tmpst
            Else
                While mid( st, i, 1 ) == ' '
                    i = i + 1
                Wend
                If kol == nom - 1 Then
                    start = i
                Endif
            Endif
        Endif
    Next
    tmpst = ''
    return tmpst
end sub


Заметил странность. Почему то не пропечатывает последний символ последнего в строке слова.
str = 'на улице было 20 градусов мороза'
GetWord( str, 4 ) = 20
GetWord( str, 2 ) = улице

НО
GetWord( str, 6 ) = мороз
а потерялось.
Это у меня так глючит или так и задумано? :cry:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Проблема с GetWord.

Post by Mirage »

Сам разобрался. :mrgreen:
Новый вариант процедуры вот там.
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Re: Проблема с GetWord.

Post by Gromiz »

а для чего сам скрип-То? :oops:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Проблема с GetWord.

Post by Mirage »

чтобы работать с текстом ;)
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Re: Проблема с GetWord.

Post by Gromiz »

для бота рекламщика, например?
или оно наоборот - считывает?

диковенное писание :)
Post Reply