Чето не втыкаю в чем дело логика if == в 7 зено

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
Пишу проверку доступности сервера.
Гетом беру нтмл -
HTTP/1.1 200 OK
блаблабла
записываю в переменную - из переменной регуляркой беру 200 - те в перменную ok записывается число 200....Сервер доступен получается.
Теперь ифом проверяю равно {-Variable.ok-}==200 а {-Variable.ok-}равна 200 !!!.
По логике if должен выходить по зеленой ветке тк переменная ok=200- а у меня все время выходит по красной...
Чето я вообще не понимаю в чем жесть ... В чем косяк то ?
200 число в скобки брать не надо - хотя ив одинарные и в двойные скобки брал выход по красной.И проверял {-Variable.ok-}> 199 ) - выходит по зеленой да больше . Или я чего тто туплю или баг какой или пробел где то или чего я не догоняю ).
 

Вложения

Reysh

Client
Регистрация
02.12.2018
Сообщения
197
Благодарностей
133
Баллы
43
В кавычки нужно взять
"{-Variable.ok-}" == "200"
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
кубик if глючный. он на ява реализован. у меня одно время тоже непонятки были, боты шарахались по сайту как полоумные. не мог понять.... потом в самом узком месте на пробу заменил кубик if на логику с# и для сравнения оставил кубик if c выводом результата. в общем я теперь кубик IF не использую от слова совсем ! и вам того же желаю.
а еще есть тут тема с бенчмарками, так там при нагрузке на процессор кубик If просто перестает работать. в один , два потока вроде норм а как нагружаешь по количеству ядер, сразу ошибки именно в этом кубике.
я там тоже попробовал на c# сравнение сделать и нормально даже под нагрузкой.
 

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
Дааа ну эт просто п-ц - использовать сторонние библиотеки для if !!!! это просто жесть дас... Ребят дайте "си шарп" код пожалуйста я в нем не очень или ссылочку киньте плиз.
 

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
В кавычки нужно взять
"{-Variable.ok-}" == "200"
Это не помогает и в одинарные брал и в двойные и без. По идее должно по зеленой выходить - выходит по красной со всеми кавчками и без ) я думал уже я чокнулся ).
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 455
Благодарностей
5 913
Баллы
113
Кубик не глючный, и никаких библиотек ненадо.
У вас в переменную попадает строковое значние, а вы его сравниваете с числом.
Сравнивайте как текст в кавычках и будет вам счастье.
 
  • Спасибо
Реакции: Yosemite

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Дааа ну эт просто п-ц - использовать сторонние библиотеки для if !!!! это просто жесть дас... Ребят дайте "си шарп" код пожалуйста я в нем не очень или ссылочку киньте плиз.
чем с# сторонний ? по мне так это ява тут лишняя. яву надо в браузере использовать а не в исполняемом коде. но это сугубо личное мнение, так что тапками не кидаться :-)

C#:
bool is_enable_work = false;
// логика /////////////////////////
int data = 0;  try{    data = int.Parse(project.Variables["ок"].Value); } catch{}
if ( data = 200 ) is_enable_work  = true;
////////////////////////////////////
if ( is_enable_work ) {
    return 0; // выход по зеленой
}
else {
    throw new Exception(); // выход по красной
}
в логику можно запихать сложные условия.
 
Последнее редактирование:
  • Спасибо
Реакции: letr

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
Кубик не глючный, и никаких библиотек ненадо.
У вас в переменную попадает строковое значние, а вы его сравниваете с числом.
Сравнивайте как текст в кавычках и будет вам счастье.
Кубик не глючный, и никаких библиотек ненадо.
У вас в переменную попадает строковое значние, а вы его сравниваете с числом.
Сравнивайте как текст в кавычках и будет вам счастье.
Как правильно написать что бы по зеленой то вышло ? Да в переменной х там строки взяты е гетом. Из этих строк регуляркой парсится число 200. Попадая в перменную ok оно уже число (проверял увеличивал на 1 и сравнивал > 199 - выход по зеленой те больше.) Пробовал и с одинарными и с двойными кавчками и без выходит по красной и все . Попробую еще в штатном 5.39.0.0. Может перегрузка поможет...
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Кубик не глючный, и никаких библиотек ненадо.
У вас в переменную попадает строковое значние, а вы его сравниваете с числом.
Сравнивайте как текст в кавычках и будет вам счастье.
не глючный ? ну ну.... разработчики другого и не скажут.
чего же тогда у меня условие 5==5 по красной выходило ? и "5"=="5" опять по красной ? и только в C# 5==5 равно true !
не было бы пойманы такие ситуации я бы не потратил пол недели в поисках и замене кубиков IF на C# !
Думаете у меня вот так было много времени этой херней заниматься ?
Вы уже 2й модератор которому я говорю, возьмите тест бенчмарка и нагрузите по полной, и покажите своим программистам, пусть тоже поудивляются !
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Как правильно написать что бы по зеленой то вышло ? Да в переменной х там строки взяты е гетом. Из этих строк регуляркой парсится число 200. Попадая в перменную ok оно уже число (проверял увеличивал на 1 и сравнивал > 199 - выход по зеленой те больше.) Пробовал и с одинарными и с двойными кавчками и без выходит по красной и все . Попробую еще в штатном 5.39.0.0. Может перегрузка поможет...
я там малясь поправил. в переменную ок до вызова кубика c# складируете что надо сравнить. в строке if ( data = 200 ) is_enable_work = true; сравнивается с 200 (число)
 
  • Спасибо
Реакции: letr

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 134
Баллы
113
Это не помогает и в одинарные брал и в двойные и без. По идее должно по зеленой выходить - выходит по красной со всеми кавчками и без ) я думал уже я чокнулся ).
Оч. странно, только что проверил в 5 и 7 версиях - все одинаково хорошо выполняется и проверяется, выходит по зеленой.

46256



46255
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Оч. странно, только что проверил в 5 и 7 версиях - все одинаково хорошо выполняется и проверяется, выходит по зеленой.

Посмотреть вложение 46256


Посмотреть вложение 46255
конечно странно. у меня тоже не всегда глюки были. так ... через раз. но они были!
может какая кросплатформенная фигня. у меня вот AMD например.
а нее, вспомнил... начинал то я на i5 . так что фиг знает. вам разработчикам виднее где глюк, а где нет :-)
 

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
Хм странно... Может что то в версиях явы несовпадения какие то ...Или что то субъективное мешает правильной работе- но собственно программа то по сути замкнута в себе и не должно ничего происходить такого - иначе у всех были бы глюки... Еще в версии 5-18 сначала логика 200= 200 срабатывала. Потом == перестало работать - ладно думаю переставил где мог на > и != .Где логику не пытался изменить в уже готовых кубиках еще работало. В 7 загрузил в е равенство полностью слетело...Однако факт есть факт !!! Я могу видео записать если есть надобность кубик глючит. Потестирую еще на штатной версии последней - может там получится...
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Хм странно... Может что то в версиях явы несовпадения какие то ...Или что то субъективное мешает правильной работе- но собственно программа то по сути замкнута в себе и не должно ничего происходить такого - иначе у всех были бы глюки... Еще в версии 5-18 сначала логика 200= 200 срабатывала. Потом == перестало работать - ладно думаю переставил где мог на > и != .Где логику не пытался изменить в уже готовых кубиках еще работало. В 7 загрузил в е равенство полностью слетело...
а вот тут то и ошибочка. программа нифига не замкнута. есть тут один элемент который конкретно всю стабильность коту под хвост пускает. и это .... (тут должны быть барабаны :-) ) БРАУЗЕР.
и вот эта хрень всю малину портит. он может заглючить, зависнуть, потечь.... и все это скажется на ... фиг знает на чем это скажется, но кубик IF начинает глючить.
запускал бенчмарк и выявил прямую зависимость стабильности ява кода от нагрузки.
а недавно пролетала тема, где ява код критовал на одном сайте и не мог получить высоту окна браузера. вот и вся стабильность :(
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 134
Баллы
113
Хм странно... Может что то в версиях явы несовпадения какие то ...Или что то субъективное мешает правильной работе- но собственно программа то по сути замкнута в себе и не должно ничего происходить такого - иначе у всех были бы глюки... Еще в версии 5-18 сначала логика 200= 200 срабатывала. Потом == перестало работать - ладно думаю переставил где мог на > и != .Где логику не пытался изменить в уже готовых кубиках еще работало. В 7 загрузил в е равенство полностью слетело...Однако факт есть факт !!! Я могу видео записать если есть надобность кубик глючит. Потестирую еще на штатной версии последней - может там получится...
Проверьте как срабатывает регулярка, которая берет значение 200.
Возможно она берет какой то невидимый символ. Мне представляется такое, что вряд ли, но все же.
Также проверьте вручную вписать в экшене без переменных IF '200'=='200' будет ли по зеленой выходить?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
вот скрин
46257


под хромом норм работает. под файрфокс критует.

почему тогда кубик IF не может быть глючный ?
 

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
Проверьте как срабатывает регулярка, которая берет значение 200.
Возможно она берет какой то невидимый символ. Мне представляется такое, что вряд ли, но все же.
Также проверьте вручную вписать в экшене без переменных IF '200'=='200' будет ли по зеленой выходить?
Да выйти надо минут на 15 - приду попробую отпишу.
 

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
IF '200'=='200' выходит по красной.
по красной.gif
 
Последнее редактирование модератором:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 134
Баллы
113
В настройках программы на вкладке Другое заранее включите галку Подробный лог для разработчиков,
затем перезагрузите программу.

Сразу после воспроизведения описанной вами проблемы, cделайте Диагностику и отправляйте report.zip на [email protected] (со ссылкой на эту тему).

Диагностику можно выполнить, запустив ее из Настроек программы, из вкладки Другое, либо запустив Diagnostic.exe из рабочей папки программы, либо из группы запуска "Все программы -> Zennolab" (ярлык 'Diagnostic').
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113

letr

Новичок
Регистрация
29.10.2017
Сообщения
15
Благодарностей
4
Баллы
3
мдя, походу у тебя глюк устойчивый.
у меня по зеленой выходит даже если одна из переменных строка :-)

Посмотреть вложение 46260
Нда )))) ну шли тоже разарабам ерор лог ) Дело важное, логика должна работать !!! Иначе это позор джунглей просто... - У меня еще глюк был ошибка запись по фтп - браузер не создан и п-ц. Тока по фтп передавало файлы и вдруг перстало ни с того ни с сего.. - но там вроде зацепило пробел - хотя опять же такие мелочи должны быть учтены- с какого х пробел в хосте или логине как то влияет на передачу данных...
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 371
Баллы
113

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 438
Благодарностей
9 134
Баллы
113
А зачем вы написали IF '200'=='200'? Так, конечно, не будет работать.
:-) Просто уже шаманим с бубнами, должно пройти по зеленому, у меня так.
У него проходит по красному.

46265
 
  • Спасибо
Реакции: Yuriy Zymlex

Кто просматривает тему: (Всего: 4, Пользователи: 0, Гости: 4)