Передать значения в названия переменных.

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

Передать значения в названия переменных.

Postby Aveiro » Mon, 15 Aug 2016, 17:00

Добрый день.
В общем образный пример:
Парк автомобилей. Задача однотипная, но для разных машин. Т.е копий этой задачи может быть много.
Чтобы различить машины нужно в название переменных передать номер машины.

(Нижняя задача VYBOR_MASHINE)
Выбираем какие машины: легковые-грузовые.Далее вводим номер машины. Этот номер машины хотим передать в названия переменных верхней задачи BIG_MASHINE . Создаем файл-флаг запуска верхней задачи.

(Верхняя задача BIG_MASHINE)
Запускается при появлении файла-флага. Далее к переменным нужно дописать номер машины. Дальше работа...


Code: Select all
#( BIG_MASHINE                                                          \ работа с грузовыми машинами
WatchFile: "D:\SYSTEM\CONTROL\BIG_MACHINE_%fVAR_NUMBERS_MASHINE%.flag"  \ запуск задачи при появлении файла-флага
fVAR fVAR_NUMBERS_MASHINE
fVAR fVAR_PARAMETR1_BIG_MASHINE_%fVAR_NUMBERS_MASHINE%
fVAR fVAR_PARAMETR2_BIG_MASHINE_%fVAR_NUMBERS_MASHINE%
fVAR fVAR_PARAMETR3_BIG_MASHINE_%fVAR_NUMBERS_MASHINE%         

VARIABLE VAR_PARAMETR1_BIG_MASHINE_%fVAR_NUMBERS_MASHINE%     
VARIABLE VAR_PARAMETR1_BIG_MASHINE_%fVAR_NUMBERS_MASHINE%     
VARIABLE VAR_PARAMETR1_BIG_MASHINE_%fVAR_NUMBERS_MASHINE%     

CREATE BIG_MASHINE_%fVAR_NUMBERS_MASHINE% 256 ALLOT                     
Action:
 \ работа
)#
#######################################################################################################
#( VYBOR_MASHINE         
WatchHotKey: "^+{F1}"                             
SingleInstance
fVAR fVAR_NUMBERS_MASHINE                                                       
Action:
WIN-INPUT-TEXT: "Машины" "Введите НОМЕР МАШИНЫ: " "%fVAR_NUMBERS_MASHINE%" 0 0=     \ запрос на ввод переменной НОМЕРА МАШИНЫ
IF
    TO fVAR_NUMBERS_MASHINE                                                     
    4 S" Машины" DROP S" Это легковая машина ?" DROP 0 MessageBoxA
    6 =                                                                             \ если легковые машины -->
    IF
        FILE-CREATE: "D:\SYSTEM\CONTROL\SMALL_MACHINE_%fVAR_NUMBERS_MASHINE%.flag"  \ создания файла-флага
    ELSE
        4 S" Машины" DROP S" Это грузовая машина ?" DROP 0 MessageBoxA
        6 =                                                                          \ если грузовые машины -->
        IF
            FILE-CREATE: "D:\SYSTEM\CONTROL\BIG_MACHINE_%fVAR_NUMBERS_MASHINE%.flag" \ создания файла-флага
        THEN
    THEN
THEN
)#
#######################################################################################################


Можно реализовать ?
Спасибо.
nncron.exe v 1.93b15 Build 1177 08.02.2016
tm.exe v 1.93b15 Build 604 08.02.2016
Aveiro
 
Posts: 222
Joined: Tue, 06 Jul 2010, 21:19

Re: Передать значения в названия переменных.

Postby VoidVolker » Tue, 16 Aug 2016, 01:51

Code: Select all
S" Teкст" S" машина_" S" а123бв" S+  FWRITE
S" машина_" S" а123бв" S+ FILE
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Передать значения в названия переменных.

Postby Aveiro » Tue, 16 Aug 2016, 21:03

Пытаюсь разобраться...сложно. А можно пример ?
nncron.exe v 1.93b15 Build 1177 08.02.2016
tm.exe v 1.93b15 Build 604 08.02.2016
Aveiro
 
Posts: 222
Joined: Tue, 06 Jul 2010, 21:19

Re: Передать значения в названия переменных.

Postby dothen » Wed, 17 Aug 2016, 00:05

Пример:
Code: Select all
<%
 CREATE GOSNOMER 16 ALLOT

 : DIRFORVAR_BIG ( -- ) S" D:\TMP\BIG\VAR\" ;
 : DIRFORVAR_SMALL ( -- ) S" D:\TMP\SMALL\VAR\" ;

 : FNAMEVAR1_BIG ( -- ) DIRFORVAR_BIG S" PARAMETR1_BIG_MASHINE_" S+ GOSNOMER COUNT S+ ;
 : FNAMEVAR2_BIG ( -- ) DIRFORVAR_BIG S" PARAMETR2_BIG_MASHINE_" S+ GOSNOMER COUNT S+ ;
 : FNAMEVAR3_BIG ( -- ) DIRFORVAR_BIG S" PARAMETR3_BIG_MASHINE_" S+ GOSNOMER COUNT S+ ;

 : FNAMEVAR1_SMALL ( -- ) DIRFORVAR_SMALL S" PARAMETR1_SMALL_MASHINE_" S+ GOSNOMER COUNT S+ ;
 : FNAMEVAR2_SMALL ( -- ) DIRFORVAR_SMALL S" PARAMETR2_SMALL_MASHINE_" S+ GOSNOMER COUNT S+ ;
 : FNAMEVAR3_SMALL ( -- ) DIRFORVAR_SMALL S" PARAMETR3_SMALL_MASHINE_" S+ GOSNOMER COUNT S+ ;


: SMALL_MASHINE ( -- )
   FNAMEVAR1_BIG EXIST? IF S" Этот номер стоит на грузовой" MsgBox EXIT THEN

   S" Параметр 1" FNAMEVAR1_SMALL FWRITE
   S" Параметр 2" FNAMEVAR2_SMALL FWRITE
   S" Параметр 3" FNAMEVAR3_SMALL FWRITE

   FNAMEVAR1_SMALL FILE MsgBox
   FNAMEVAR2_SMALL FILE MsgBox
   FNAMEVAR3_SMALL FILE MsgBox
;

: BIG_MASHINE ( -- )
   FNAMEVAR1_SMALL EXIST? IF S" Этот номер стоит на легковой" MsgBox EXIT THEN

\ Это поговорки просто для прикола (без адреса)
   S" Дело было не в бобине" FNAMEVAR1_BIG FWRITE
   S" Раздолбай сидел в кабине" FNAMEVAR2_BIG FWRITE
   S" Водятел 1 класса" FNAMEVAR3_BIG FWRITE

   FNAMEVAR1_BIG FILE MsgBox
   FNAMEVAR2_BIG FILE MsgBox
   FNAMEVAR3_BIG FILE MsgBox
;

%>



#( VYBOR_MASHINE
WatchHotKey: "^`"
SingleInstance
Action:
GOSNOMER OFF
WIN-INPUT-TEXT: "Легковые Машины" "Введите номер%CRLF%ЛЕГКОВОЙ машины" "%GOSNOMER COUNT%" 0 0=     \ запрос на ввод НОМЕРА МАШИНЫ
IF
  GOSNOMER PLACE SMALL_MASHINE
ELSE
  WIN-INPUT-TEXT: "Грузовые Машины" "Введите номер%CRLF%ГРУЗОВОЙ машины" "%GOSNOMER COUNT%" 0 0=     \ запрос на ввод НОМЕРА МАШИНЫ
  IF GOSNOMER PLACE BIG_MASHINE THEN
THEN
)#
dothen
 
Posts: 184
Joined: Mon, 16 Mar 2015, 04:58

Re: Передать значения в названия переменных.

Postby Aveiro » Wed, 17 Aug 2016, 10:31

Спасибо .
Сложная реализация. Кроме того в массиве смотрю. Переменные идут под намерами small1,2,3 и т.д
В реалии я не знаю сколько будет машин. Может две, а может 15. Нужно на ходу записывать, при появленнии машины.
Вообще все это затеяно, чтобы мочь различать задачи. И иногда на ходу менять параметры определенной задачи (копий которой несколько работает). И иногда останавливать задачу для определеной машины.
За помощь еще раз спасибо !
nncron.exe v 1.93b15 Build 1177 08.02.2016
tm.exe v 1.93b15 Build 604 08.02.2016
Aveiro
 
Posts: 222
Joined: Tue, 06 Jul 2010, 21:19

Re: Передать значения в названия переменных.

Postby VoidVolker » Thu, 18 Aug 2016, 13:26

Aveiro wrote:Пытаюсь разобраться...сложно. А можно пример ?

А в чем сложность-то? Это и есть пример. Первая строка - данные, вторая - путь и название файла.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest

cron