Автор Тема: setvar и строки  (Прочитано 582 раз)

0 Пользователей и 1 Гость просматривают эту тему.

i0

  • Оплот сообщества
  • ****
  • Сообщений: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • Просмотр профиля
setvar и строки
« : Июль 01, 2018, 08:51:17 am »
Код: Clickermann
  1. $sVar1="abcdefgh"
  2. define($sVar2)
  3. setvar("$sVar2", strconcat(" ", $sVar1))
  4. $sAnswer= dialogbox("breakpoint", 0, 0)
  5. if ($sVar2 ! " abcdefgh")
  6.   print("i dunno")  
  7. else
  8.   print("string")  
  9. end_if
  10. $sAnswer= dialogbox("breakpoint", 0, 0)
  11. halt
setvar помещает в переменную значение "без типа", несмотря на явное использование strconcat
и на этапе проверки получаем ошибку сравнения
соответственно, приходится после setvar впихивать жёсткую строку $sVar2= strconcat($sVar2), убивающую идею использования setvar :(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3658
  • Котэ
    • Просмотр профиля
Re: setvar и строки
« Ответ #1 : Июль 01, 2018, 09:02:57 am »
Если сравнивать хеши строк ошибок не будет.

Код: Clickermann
  1. $sVar1="abcdefgh"
  2. define($sVar2)
  3. setvar("$sVar2", strconcat(" ", $sVar1))
  4. $sAnswer= dialogbox("breakpoint 1", 0, 0)
  5. if (STRMD5($sVar2) ! STRMD5(" abcdefgh"))
  6.   print("i dunno")
  7. else
  8.   print("string")
  9. end_if
  10. $sAnswer= dialogbox("breakpoint 2", 0, 0)
  11. halt

i0

  • Оплот сообщества
  • ****
  • Сообщений: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • Просмотр профиля
Re: setvar и строки
« Ответ #2 : Июль 01, 2018, 09:08:34 am »
о, спасибо за обход. всё время про хэши забываю, сейчас так и переделаю

но всё же в setvar ошибка. imho

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3405
  • Лечу куда хочу. cman 4.13.014x32, W10, W7
    • Просмотр профиля
Re: setvar и строки
« Ответ #3 : Июль 02, 2018, 01:45:23 pm »
setvar сама по себе ошибка  :)