Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Страница 1 из 11
Модератор форума: DEMBEL, YURIY 
Форум NeoBook » Всё остальное » Свободное общение » Ошибка в коде
Ошибка в коде
bobpollДата: Пн, 29 Октября 2012, 12:36 | Сообщение # 1
Новичок
Доброго времени суток, у меня вот такой вопрос делал программу чтобы с браузерной игры получить инфу
о персонажах, там есть параметр который записывается в переменную Rizalt3 в переменной в конце строки есть буква m или k так вот мне её нужно удалить и параметр умножить на 1000000, весь скрипт нормально работает а вот именно условие и математическое действие рубят всё, весь код перестаёт работать! Я пометил код с которым проблема! Если есть соображения по этому поводу, помогите плиз, уже третий день с этой проблемой маюсь!
Code
npCrearBarraProgreso "Rectangle2" "0" "1" "30" "Horizontal"
SetVar "[Stranica01]" "1"
While "[Stranica01]" "<=" "30"
InternetGet "Сайт/?page=c_rating&cartel=97&type=exp&pp=[Stranica01]" "[Chto]" "HideProgress"
zmConvertString "Utf8ToAnsi" "[Chto]" "[Chto]"
SetVar "[User01]" "1"
While "[User01]" "<=" "10"
SetVar "[q1]" "?page=user&user="
SetVar "[q2]" "[#34]>"
SetVar "[q3]" "</a> <span class=[#34]minor2[#34]>"
SetVar "[q4]" "</span><br/>"
Call "tagParse" "[Chto]" "[q1]" "[q2]" "[Rizalt1]"
Call "tagParse" "[Chto]" "[Rizalt1][q2]" "[q3]" "[Rizalt2]"
Call "tagParse" "[Chto]" "[Rizalt2][q3]" "[q4]" "[Rizalt3]"

.........Вот этот код всё рубит!
SearchStr "m" "[Rizalt3]" "[001]" "CaseSensitive"
If "[001]" ">" "0"
StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""
Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"
Else
EndIf

SearchStr "л" "[Rizalt3]" "[002]" "CaseSensitive"  
  If "[002]" ">" "0"  
  StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""  
  Math "[Rizalt3]*1000" "-1" "[Rizalt3]"  
  Else  
  EndIf  
  ...............
..........................................................

InternetGet "Сайт/?page=user&user=[Rizalt1]" "[Chto2]" "HideProgress"
zmConvertString "Utf8ToAnsi" "[Chto2]" "[Chto2]"
StrReplace "[Chto2]" "</span></div><div class=[#34]body[#34]>" "</span><br/>" "[Chto2]" ""
SetVar "[w1]" "Óðîâåíü</span>: "
SetVar "[w2]" "<br/><span class=[#34]info[#34]>Ïîë</span>: <img width=[#34]12[#34] height=[#34]12[#34] src=[#34]images/icons/"
SetVar "[w3]" "<br/><span class=[#34]info[#34]>Îïûò</span>: "
SetVar "[w4]" "<span class=[#34]minor2[#34]>"
SetVar "[w5]" "Ñòàòóñ</span>: <span class=[#34]"
SetVar "[w6]" "</span><br/>"
Call "tagParse" "[Chto2]" "[w1]" "[w2]" "[Rizaltw1]"
Call "tagParse" "[Chto2]" "[w2]" "[w3]" "[Rizaltw2]"
Call "tagParse" "[Chto2]" "[w3]" "[w4]" "[Rizaltw3]"
Call "tagParse" "[Chto2]" "[w5]" "[w6]" "[Rizaltw4]"
SearchStr ">" "[Rizaltw2]" "[RizaltwDel2]" ""
If "[RizaltwDel2]" ">" "0"
StrDel "[Rizaltw2]" "1" "[RizaltwDel2]" "[Rizaltw2]"
Else
EndIf
SearchStr ">" "[Rizaltw4]" "[RizaltwDel4]" ""
If "[RizaltwDel4]" ">" "0"
StrDel "[Rizaltw4]" "1" "[RizaltwDel4]" "[Rizaltw4]"
Else
EndIf
SearchStr ">" "[Rizaltw4]" "[RizaltwDel4]" ""
If "[RizaltwDel4]" ">" "0"
StrDel "[Rizaltw4]" "7" "10000" "[Rizaltw4]"
Else
EndIf
FileWrite "[PubDir]KartelUser.txt" "Append" "[Rizalt2];[Rizalt1];[Rizalt3];[Rizaltw4];[Rizaltw2];[Rizaltw3];[Rizaltw1]"
StrReplace "[Chto]" "[q1][Rizalt1][q2][Rizalt2][q3][Rizalt3][q4]" "" "[Chto]" ""
SetVar "[User01]" "[User01]+1"
EndWhile
npAvanzarBarraProgreso "Rectangle2"
SetVar "[Stranica01]" "[Stranica01]+1"
EndWhile
npLiberarBarraProgreso "Rectangle2"

Добавлено (29 Октября 2012, 12:36)
---------------------------------------------
Простите, я там поставил букву л но в программе у меня правильно стоит k

 
СообщениеДоброго времени суток, у меня вот такой вопрос делал программу чтобы с браузерной игры получить инфу
о персонажах, там есть параметр который записывается в переменную Rizalt3 в переменной в конце строки есть буква m или k так вот мне её нужно удалить и параметр умножить на 1000000, весь скрипт нормально работает а вот именно условие и математическое действие рубят всё, весь код перестаёт работать! Я пометил код с которым проблема! Если есть соображения по этому поводу, помогите плиз, уже третий день с этой проблемой маюсь!
Code
npCrearBarraProgreso "Rectangle2" "0" "1" "30" "Horizontal"
SetVar "[Stranica01]" "1"
While "[Stranica01]" "<=" "30"
InternetGet "Сайт/?page=c_rating&cartel=97&type=exp&pp=[Stranica01]" "[Chto]" "HideProgress"
zmConvertString "Utf8ToAnsi" "[Chto]" "[Chto]"
SetVar "[User01]" "1"
While "[User01]" "<=" "10"
SetVar "[q1]" "?page=user&user="
SetVar "[q2]" "[#34]>"
SetVar "[q3]" "</a> <span class=[#34]minor2[#34]>"
SetVar "[q4]" "</span><br/>"
Call "tagParse" "[Chto]" "[q1]" "[q2]" "[Rizalt1]"
Call "tagParse" "[Chto]" "[Rizalt1][q2]" "[q3]" "[Rizalt2]"
Call "tagParse" "[Chto]" "[Rizalt2][q3]" "[q4]" "[Rizalt3]"

.........Вот этот код всё рубит!
SearchStr "m" "[Rizalt3]" "[001]" "CaseSensitive"
If "[001]" ">" "0"
StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""
Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"
Else
EndIf

SearchStr "л" "[Rizalt3]" "[002]" "CaseSensitive"  
  If "[002]" ">" "0"  
  StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""  
  Math "[Rizalt3]*1000" "-1" "[Rizalt3]"  
  Else  
  EndIf  
  ...............
..........................................................

InternetGet "Сайт/?page=user&user=[Rizalt1]" "[Chto2]" "HideProgress"
zmConvertString "Utf8ToAnsi" "[Chto2]" "[Chto2]"
StrReplace "[Chto2]" "</span></div><div class=[#34]body[#34]>" "</span><br/>" "[Chto2]" ""
SetVar "[w1]" "Óðîâåíü</span>: "
SetVar "[w2]" "<br/><span class=[#34]info[#34]>Ïîë</span>: <img width=[#34]12[#34] height=[#34]12[#34] src=[#34]images/icons/"
SetVar "[w3]" "<br/><span class=[#34]info[#34]>Îïûò</span>: "
SetVar "[w4]" "<span class=[#34]minor2[#34]>"
SetVar "[w5]" "Ñòàòóñ</span>: <span class=[#34]"
SetVar "[w6]" "</span><br/>"
Call "tagParse" "[Chto2]" "[w1]" "[w2]" "[Rizaltw1]"
Call "tagParse" "[Chto2]" "[w2]" "[w3]" "[Rizaltw2]"
Call "tagParse" "[Chto2]" "[w3]" "[w4]" "[Rizaltw3]"
Call "tagParse" "[Chto2]" "[w5]" "[w6]" "[Rizaltw4]"
SearchStr ">" "[Rizaltw2]" "[RizaltwDel2]" ""
If "[RizaltwDel2]" ">" "0"
StrDel "[Rizaltw2]" "1" "[RizaltwDel2]" "[Rizaltw2]"
Else
EndIf
SearchStr ">" "[Rizaltw4]" "[RizaltwDel4]" ""
If "[RizaltwDel4]" ">" "0"
StrDel "[Rizaltw4]" "1" "[RizaltwDel4]" "[Rizaltw4]"
Else
EndIf
SearchStr ">" "[Rizaltw4]" "[RizaltwDel4]" ""
If "[RizaltwDel4]" ">" "0"
StrDel "[Rizaltw4]" "7" "10000" "[Rizaltw4]"
Else
EndIf
FileWrite "[PubDir]KartelUser.txt" "Append" "[Rizalt2];[Rizalt1];[Rizalt3];[Rizaltw4];[Rizaltw2];[Rizaltw3];[Rizaltw1]"
StrReplace "[Chto]" "[q1][Rizalt1][q2][Rizalt2][q3][Rizalt3][q4]" "" "[Chto]" ""
SetVar "[User01]" "[User01]+1"
EndWhile
npAvanzarBarraProgreso "Rectangle2"
SetVar "[Stranica01]" "[Stranica01]+1"
EndWhile
npLiberarBarraProgreso "Rectangle2"

Добавлено (29 Октября 2012, 12:36)
---------------------------------------------
Простите, я там поставил букву л но в программе у меня правильно стоит k


Автор - bobpoll
Дата добавления - 29 Октября 2012 в 12:36
PeterДата: Пн, 29 Октября 2012, 16:26 | Сообщение # 2
Админ NeoBook
Quote (bobpoll)
а вот именно условие и математическое действие рубят всё, весь код перестаёт работать!

Quote (bobpoll)
.........Вот этот код всё рубит!

В таких случаях самое разумное решение - использование отладчика.
Ставите перед "рубящим кодом" команду DebugBreakPoint, при тестировании после её срабатывания включаете пошаговый режим, и внимательно смотрите что содержится в переменных после срабатывания каждой строчки кода, а также увидите какие команды выполняются, а какие - нет.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (bobpoll)
а вот именно условие и математическое действие рубят всё, весь код перестаёт работать!

Quote (bobpoll)
.........Вот этот код всё рубит!

В таких случаях самое разумное решение - использование отладчика.
Ставите перед "рубящим кодом" команду DebugBreakPoint, при тестировании после её срабатывания включаете пошаговый режим, и внимательно смотрите что содержится в переменных после срабатывания каждой строчки кода, а также увидите какие команды выполняются, а какие - нет.

Автор - Peter
Дата добавления - 29 Октября 2012 в 16:26
mishemДата: Пн, 29 Октября 2012, 19:37 | Сообщение # 3
Эксперт форума
Сложно будет помочь по таким не полным данным.
Что еще находится в переменной Rizalt3?
Какая ошибка выдается?
Если в переменной Rizalt3 есть символы которые не возможно умножить, то соответственно будет ошибка.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеСложно будет помочь по таким не полным данным.
Что еще находится в переменной Rizalt3?
Какая ошибка выдается?
Если в переменной Rizalt3 есть символы которые не возможно умножить, то соответственно будет ошибка.

Автор - mishem
Дата добавления - 29 Октября 2012 в 19:37
DEMBELДата: Вт, 30 Октября 2012, 03:03 | Сообщение # 4
Наш дизайнер
ничего сложного в том что вы делаете нет. Ошибки только от невнимательности и отсутствия навыков отладки. Если логика кода в порядке и вы знаете что делаете, то наверняка просто в какой-то переменной в результате парсинга или замены строк получился мусор или не то что вы ожидали вот и все. пользуйтесь дебаггером или просто в критичных участках кода вставляйте AlertBox где выводите содержимое переменных для контроля хода сценария.

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениеничего сложного в том что вы делаете нет. Ошибки только от невнимательности и отсутствия навыков отладки. Если логика кода в порядке и вы знаете что делаете, то наверняка просто в какой-то переменной в результате парсинга или замены строк получился мусор или не то что вы ожидали вот и все. пользуйтесь дебаггером или просто в критичных участках кода вставляйте AlertBox где выводите содержимое переменных для контроля хода сценария.

Автор - DEMBEL
Дата добавления - 30 Октября 2012 в 03:03
antonДата: Ср, 31 Октября 2012, 09:39 | Сообщение # 5
Ветеран форума
Так, давай разберем проблемный код по полочкам:

.Тут ты ищешь с учетом регистра в строке [Rizalt3] букву m и сохраняешь результат в переменную [001] (не уверен что регистр необходимо использовать, но это твое дело)
SearchStr "m" "[Rizalt3]" "[001]" "CaseSensitive"

.Далее если буква m была найдена ты ее удаляешь и сохраняешь в туже переменную. Следом измененную переменную [Rizalt3] ты умножаешь на 1000000 и сохраняешь опять же в [Rizalt3] (пока по логике все нормально)
If "[001]" ">" "0"
StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""
Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"
Else
EndIf

.Тепереча ты ищешь в вероятно измененной на первом этапе переменной [Rizalt3] букву л и повторяешь сходные этапы только умножаешь на 1000. (Вот тут и начинается не стыковка логики)
SearchStr "л" "[Rizalt3]" "[002]" "CaseSensitive"
If "[002]" ">" "0"
StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""
Math "[Rizalt3]*1000" "-1" "[Rizalt3]"
Else
EndIf

1. не стыковка: Ты ищешь букву л а удаляешь букву k (вероятно просто ошибка невнимательности)
2. не стыковка: На первом этапе в строке [Rizalt3] ты искал букву m удалял ее и умножал результат на 1000000,а на втором этапе ты в этой же строке уже ищешь букву k. Так как содержание переменной [Rizalt3] берется с сайта, то в теории парсинг может вернуть не только искомые значения 245k или 5m но и хрень типа 545komos. И тут может возникнуть касяк с [Rizalt3]. То есть функция Math "[Rizalt3]*1000000" "-1" "[Rizalt3]" может не сработать так как получает вид Math 545koos*1000000" "-1" "[Rizalt3]". А строковое значение нельзя ни на что помножить. Мне кажется проблемный код необходимо исправить до вот такого вида:

Code

If "[Rizalt3]" "<>" ""
         SearchStr "m" "[Rizalt3]" "[001]" ""
         SearchStr "k" "[Rizalt3]" "[002]" ""        
              
          IfEx "[001]>0 and [002]=0"
             StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""         
             Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"         
         EndIf         

         IfEx "[002]>0 and [001]=0"         
             StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""
             Math "[Rizalt3]*1000" "-1" "[Rizalt3]"          
         EndIf
EndIf            
       


Или даже лучше так используя плагин hpwControl:
Code

If "[Rizalt3]" "<>" ""
      SearchStr "m" "[Rizalt3]" "[001]" ""
      SearchStr "k" "[Rizalt3]" "[002]" ""

      IfEx "[001]>0 and [002]=0"
         StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""
         hpwIsNumeric "[Rizalt3]" "[Num]"
         If "[Num]" "=" "1"
            Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"
         EndIf
      EndIf

      IfEx "[002]>0 and [001]=0"
         StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""
         hpwIsNumeric "[Rizalt3]" "[Num]"
         If "[Num]" "=" "1"
            Math "[Rizalt3]*1000" "-1" "[Rizalt3]"
         EndIf
      EndIf
EndIf


"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"

Сообщение отредактировано
anton - Ср, 31 Октября 2012, 10:39
 
СообщениеТак, давай разберем проблемный код по полочкам:

.Тут ты ищешь с учетом регистра в строке [Rizalt3] букву m и сохраняешь результат в переменную [001] (не уверен что регистр необходимо использовать, но это твое дело)
SearchStr "m" "[Rizalt3]" "[001]" "CaseSensitive"

.Далее если буква m была найдена ты ее удаляешь и сохраняешь в туже переменную. Следом измененную переменную [Rizalt3] ты умножаешь на 1000000 и сохраняешь опять же в [Rizalt3] (пока по логике все нормально)
If "[001]" ">" "0"
StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""
Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"
Else
EndIf

.Тепереча ты ищешь в вероятно измененной на первом этапе переменной [Rizalt3] букву л и повторяешь сходные этапы только умножаешь на 1000. (Вот тут и начинается не стыковка логики)
SearchStr "л" "[Rizalt3]" "[002]" "CaseSensitive"
If "[002]" ">" "0"
StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""
Math "[Rizalt3]*1000" "-1" "[Rizalt3]"
Else
EndIf

1. не стыковка: Ты ищешь букву л а удаляешь букву k (вероятно просто ошибка невнимательности)
2. не стыковка: На первом этапе в строке [Rizalt3] ты искал букву m удалял ее и умножал результат на 1000000,а на втором этапе ты в этой же строке уже ищешь букву k. Так как содержание переменной [Rizalt3] берется с сайта, то в теории парсинг может вернуть не только искомые значения 245k или 5m но и хрень типа 545komos. И тут может возникнуть касяк с [Rizalt3]. То есть функция Math "[Rizalt3]*1000000" "-1" "[Rizalt3]" может не сработать так как получает вид Math 545koos*1000000" "-1" "[Rizalt3]". А строковое значение нельзя ни на что помножить. Мне кажется проблемный код необходимо исправить до вот такого вида:

Code

If "[Rizalt3]" "<>" ""
         SearchStr "m" "[Rizalt3]" "[001]" ""
         SearchStr "k" "[Rizalt3]" "[002]" ""        
              
          IfEx "[001]>0 and [002]=0"
             StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""         
             Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"         
         EndIf         

         IfEx "[002]>0 and [001]=0"         
             StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""
             Math "[Rizalt3]*1000" "-1" "[Rizalt3]"          
         EndIf
EndIf            
       


Или даже лучше так используя плагин hpwControl:
Code

If "[Rizalt3]" "<>" ""
      SearchStr "m" "[Rizalt3]" "[001]" ""
      SearchStr "k" "[Rizalt3]" "[002]" ""

      IfEx "[001]>0 and [002]=0"
         StrReplace "[Rizalt3]" "m" "" "[Rizalt3]" ""
         hpwIsNumeric "[Rizalt3]" "[Num]"
         If "[Num]" "=" "1"
            Math "[Rizalt3]*1000000" "-1" "[Rizalt3]"
         EndIf
      EndIf

      IfEx "[002]>0 and [001]=0"
         StrReplace "[Rizalt3]" "k" "" "[Rizalt3]" ""
         hpwIsNumeric "[Rizalt3]" "[Num]"
         If "[Num]" "=" "1"
            Math "[Rizalt3]*1000" "-1" "[Rizalt3]"
         EndIf
      EndIf
EndIf

Автор - anton
Дата добавления - 31 Октября 2012 в 09:39
PeterДата: Ср, 31 Октября 2012, 19:14 | Сообщение # 6
Админ NeoBook
Quote (anton)
Так, давай разберем проблемный код по полочкам:

.Тут ты ищешь


Совершенно очевидно, что со строковыми значениями нельзя выполнять математические операции.

Да, второй вариант решения "проблемы" предпочтительнее, но и он не дает гарантии работоспособности "задумки", т.к. в нем не отображено то, что должно случиться если переменная не окажется целочисленной или дробной.

bobpoll, , все это вы и сами (без посторонней помощи) могли прекрасно выяснить, если бы воспользовались отладчиком.
;)

Quote (anton)
используя плагин hpwControl


Кстати, забыл сказать: функцию типа IsNumeric можно легко написАть и в самой NB.
Образно говоря, пара строк кода (всего три необушные команды), и без всяких плагинов!
;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (anton)
Так, давай разберем проблемный код по полочкам:

.Тут ты ищешь


Совершенно очевидно, что со строковыми значениями нельзя выполнять математические операции.

Да, второй вариант решения "проблемы" предпочтительнее, но и он не дает гарантии работоспособности "задумки", т.к. в нем не отображено то, что должно случиться если переменная не окажется целочисленной или дробной.

bobpoll, , все это вы и сами (без посторонней помощи) могли прекрасно выяснить, если бы воспользовались отладчиком.
;)

Quote (anton)
используя плагин hpwControl


Кстати, забыл сказать: функцию типа IsNumeric можно легко написАть и в самой NB.
Образно говоря, пара строк кода (всего три необушные команды), и без всяких плагинов!
;)

Автор - Peter
Дата добавления - 31 Октября 2012 в 19:14
antonДата: Ср, 31 Октября 2012, 19:34 | Сообщение # 7
Ветеран форума
Quote (Peter)
anton, а это вы с кем разговариваете?

Сам с собой :) как Сергей Юрьевич Беляков из Таганрога, только он с телеком а я с собой :)
Quote (Peter)
И для чего вы нам процитировали всю эту беседу?

Да на работе, просто жесть как скучно утром, вот и чирканул поэмку в стиле Толстого :)

Quote (Peter)
Да, второй вариант решения "проблемы" предпочтительнее, но и он не дает гарантии работоспособности "задумки", т.к. в нем не отображено то, что должно случиться если переменная не окажется целочисленной или дробной.

Согласен полностью, просто по его коду не совсем понятно, что должно стать с переменной если она не примет числовое значение. Может ей присвоить значение "0" или "Не удалось получить данные", это уже как автору захочется...
Quote (Peter)
функцию типа IsNumeric можно легко написАть и в самой NB.

Ну да... Хотя честно пока не въехал как??? (разве что через [LastError] но это не 3 строчки...):

Code
ShowErrors "False"
SetVar "[LastError]" ""
DefineVar "[znach]" "Integer" "" "Local" "[Text_Integer]"
If "[LastError]" "<>" ""
     AlertBox "внимание" "[Text_Integer] - это текст"
Else
      AlertBox "внимание" "[Text_Integer] - это число"
EndIf
SetVar "[LastError]" ""
ShowErrors "True"


А еще можно всетаки воспользоваться плагином и спецсимовлами %s, %d, %u, %f, %с...


"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"

Сообщение отредактировано
anton - Ср, 31 Октября 2012, 19:37
 
Сообщение
Quote (Peter)
anton, а это вы с кем разговариваете?

Сам с собой :) как Сергей Юрьевич Беляков из Таганрога, только он с телеком а я с собой :)
Quote (Peter)
И для чего вы нам процитировали всю эту беседу?

Да на работе, просто жесть как скучно утром, вот и чирканул поэмку в стиле Толстого :)

Quote (Peter)
Да, второй вариант решения "проблемы" предпочтительнее, но и он не дает гарантии работоспособности "задумки", т.к. в нем не отображено то, что должно случиться если переменная не окажется целочисленной или дробной.

Согласен полностью, просто по его коду не совсем понятно, что должно стать с переменной если она не примет числовое значение. Может ей присвоить значение "0" или "Не удалось получить данные", это уже как автору захочется...
Quote (Peter)
функцию типа IsNumeric можно легко написАть и в самой NB.

Ну да... Хотя честно пока не въехал как??? (разве что через [LastError] но это не 3 строчки...):

Code
ShowErrors "False"
SetVar "[LastError]" ""
DefineVar "[znach]" "Integer" "" "Local" "[Text_Integer]"
If "[LastError]" "<>" ""
     AlertBox "внимание" "[Text_Integer] - это текст"
Else
      AlertBox "внимание" "[Text_Integer] - это число"
EndIf
SetVar "[LastError]" ""
ShowErrors "True"


А еще можно всетаки воспользоваться плагином и спецсимовлами %s, %d, %u, %f, %с...

Автор - anton
Дата добавления - 31 Октября 2012 в 19:34
PeterДата: Ср, 31 Октября 2012, 19:45 | Сообщение # 8
Админ NeoBook
Quote (anton)
Хотя честно пока не въехал как??? (разве что через [LastError] но это не 3 строчки...):

Подсказка: команда Math в случае ошибки выдает в результат слово "Error".
Дальнейшее - дело техники....
;)
Quote (anton)
А еще можно всетаки воспользоваться плагином

Мое убеждение - плагинами надо пользоваться только тогда, когда без них никак!

Впрочем, каждый волен сам поступать так, как ему удобнее.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (anton)
Хотя честно пока не въехал как??? (разве что через [LastError] но это не 3 строчки...):

Подсказка: команда Math в случае ошибки выдает в результат слово "Error".
Дальнейшее - дело техники....
;)
Quote (anton)
А еще можно всетаки воспользоваться плагином

Мое убеждение - плагинами надо пользоваться только тогда, когда без них никак!

Впрочем, каждый волен сам поступать так, как ему удобнее.

Автор - Peter
Дата добавления - 31 Октября 2012 в 19:45
antonДата: Ср, 31 Октября 2012, 19:50 | Сообщение # 9
Ветеран форума


"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
 
Сообщение

Автор - anton
Дата добавления - 31 Октября 2012 в 19:50
PeterДата: Ср, 31 Октября 2012, 20:04 | Сообщение # 10
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 31 Октября 2012 в 20:04
Форум NeoBook » Всё остальное » Свободное общение » Ошибка в коде
Страница 1 из 11
Поиск: