Как сравнить числовое значение хранящееся в INI ?

Обсуждение программ nnCron и nnCron LITE

Как сравнить числовое значение хранящееся в INI ?

Postby HyUgA » Tue, 26 Oct 2004, 16:08

Добрые люди подскажите в чем ошибка ?
Code: Select all
#( test
RunOnce
NoDel
AsLoggedUser
Time: 7 22 21 9 * 2004
 : ini-key-name S" ID" ;
Action:
     S" C:\Skript.ini" INI-FILENAME
     S" Seve_Base" INI-SECTION
\     ini-key-name S" 1" INI-SET-VALUE
   ini-key-name INI-GET-VALUE 1 =
    IF
     MSG: "Равны!"
    ELSE
     MSG: "Не равны!"
    THEN
)#

Работает, но в конце выдаёт "test: Ошибка стека в Action:"
User avatar
HyUgA
 
Posts: 24
Joined: Sun, 12 Sep 2004, 10:51

Postby VK » Tue, 26 Oct 2004, 17:46

ну, вот читаю я описание плагина ini.spf: "Words for retrieving/setting a string from/to the specified section in an ini-file.".

Ни на какие мысли не наводит?
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby HyUgA » Tue, 26 Oct 2004, 18:27

Ни на какие мысли не наводит?


Я думаю надо каким то образом указать что ключь числовой
только не знаю каким и где в самом INI или задаче...
User avatar
HyUgA
 
Posts: 24
Joined: Sun, 12 Sep 2004, 10:51

Postby makrus » Tue, 26 Oct 2004, 19:14

HyUgA
По моему надо перевести параметр ключа (строку) в число.
(см. "Неотложная помощь по Форту")
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby HyUgA » Tue, 26 Oct 2004, 19:42

makrus
По моему надо перевести параметр ключа (строку) в число.


Если вы это имели ввиду
Code: Select all
#( test
RunOnce
NoDel
AsLoggedUser
Time: 7 22 21 9 * 2004
 : ini-key-name S" ID" ;
Action:
     S" C:\Skript.ini" INI-FILENAME
     S" Seve_Base" INI-SECTION

\     ini-key-name S" 1" INI-SET-VALUE

   S" ini-key-name INI-GET-VALUE" S>NUM 1 =

    IF
     MSG: "Равны! "
    ELSE
     MSG: "Не равны! "
    THEN
)#

то оно тоже не работает...
в любом случае "Не равны! "
хотя ошибки уже не вылетает...
User avatar
HyUgA
 
Posts: 24
Joined: Sun, 12 Sep 2004, 10:51

Postby Valery_Kondakoff » Tue, 26 Oct 2004, 20:04

сейчас ты пытаешься конвертировать в номер строку 'ini-key-name INI-GET-VALUE'. почему тебя удивляет, что она не равна единице?
CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Postby HyUgA » Tue, 26 Oct 2004, 20:55

Code: Select all
#( test
RunOnce
NoDel
AsLoggedUser
Time: 7 22 21 9 * 2004
 : ini-key-name S" ID" ;
Action:
     S" C:\Skript.ini" INI-FILENAME
     S" Seve_Base" INI-SECTION

\     ini-key-name S" 1" INI-SET-VALUE

   S" %ini-key-name INI-GET-VALUE%" S>NUM 1 =

    IF
     MSG: "Равны! "
    ELSE
     MSG: "Не равны! "
    THEN
)#


Ах... извените...
но так тоже постоянно "Не равны!"...
User avatar
HyUgA
 
Posts: 24
Joined: Sun, 12 Sep 2004, 10:51

Postby Valery_Kondakoff » Wed, 27 Oct 2004, 08:29

CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Postby HyUgA » Wed, 27 Oct 2004, 09:05

Спасибо Valery_Kondakoff!!!
Все заработало в таком виде...
Code: Select all
#( test
RunOnce
NoDel
AsLoggedUser
Time: 7 22 21 9 * 2004
 : ini-key-name S" ID" ;
Action:
     S" C:\Skript.ini" INI-FILENAME
     S" Seve_Base" INI-SECTION
\     ini-key-name S" 1" INI-SET-VALUE
   S" %ini-key-name INI-GET-VALUE%" EVAL-SUBST S>NUM 1 =
    IF
     MSG: "Равны! "
    ELSE
     MSG: "Не равны! "
    THEN
)#
User avatar
HyUgA
 
Posts: 24
Joined: Sun, 12 Sep 2004, 10:51

Postby VK » Wed, 27 Oct 2004, 10:01

Если бы ты внимательно вчитался в вопрос-ответ про макроподстановки, то сумел бы написать так:
Code: Select all
ini-key-name INI-GET-VALUE S>NUM 1 = IF ... ELSE ... THEN
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby HyUgA » Wed, 27 Oct 2004, 10:18

Еще раз спасибо !!!
так выглядит на много проще...
User avatar
HyUgA
 
Posts: 24
Joined: Sun, 12 Sep 2004, 10:51


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests