30<x == x>30Destruction wrote:Не вижу логики, будет верно если x < 30, зачем тогда двойное условие? Возможно имелось в виду так:Code: Select all
if (30<x) and (x<40)Code: Select all
if (30>x) and (x<40)
x<40 == x<40 => x> 30 and x<40
Moderators: Murderator+, Murderator
30<x == x>30Destruction wrote:Не вижу логики, будет верно если x < 30, зачем тогда двойное условие? Возможно имелось в виду так:Code: Select all
if (30<x) and (x<40)Code: Select all
if (30>x) and (x<40)
Условия обрабатываются достаточно быстро.CRazych wrote:Вы на условие не сматрите это для примера!
Просто мне нужно знать если способ просто упрастить конструкцию.
Я просто подозреваю, что скорость работы этого скрипта будет давольно не быстрая!
Есть куча команд для работы со строчками... основные для тебя тут будет Left(str, n) Right(str, n) Mid(str, p, n)CRazych wrote:всё уже разобрался всё проще некуда )
Вот тебе удобная для таких случаев функция:CRazych wrote:Как это понять вырезаешь?
Каким образом? (пример приведи)
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
endsub
Code: Select all
sub main()
var num,z
num=abc1 abc2 abc3
нужно продолжить код дальше
Code: Select all
sub GetWord(строка, номер_слова)
var текущая_позиция = 0, начало_слова = 0, конец_слова = 0
строка = строка + ' '
while номер_слова <> 0
if строка[текущая_позиция] == ' ' then
номер_слова = номер_слова - 1
начало_слова = конец_слова
конец_слова = текущая_позиция
end if
текущая_позиция = текущая_позиция + 1
wend
return Mid(строка, начало_слова, конец_слова - начало_слова)
end sub
z=val(GetWord('abc1 abc2 abc3', 3))