|
|
|
SQL в SITA Liaison
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые! Я не силён в программировании, но мне нужна помощь в корректировке существующего цикла. Работа цикла завязана на использовании таблицы в XL формата CSV ( разделители ";" ) и воспроизведение команд в системе регистрации SITA Liaison с дальнейшей записью в блокнот информации выведенной на экран. Вопрос собственно вот в чём: не могу прописать возврат при ошибке, так чтобы цикл не просто останавливался и выходил, а так чтобы он возвращался на вторую строчку в XL файле и производил действия по тому же алгоритму, что по первой строке... #перед вызовом скрипта необходимо ввести в начале первой строки #терминала номер рейса, дату, количество пассажиров, разделенных слешем #по образцу: номер_рейса/дата/кол-во_пассажиров/ ( например 333/./10/ ) #номер рейса должен начинаться с первого символа первой строки #после количества пассажиров должен ставиться слеш / #результат выполнения скрипта записывается в файл с номером рейса #размещаемый в папке текущей даты C:\20гг-pdd\мммгг\ддмммгг\ #где дд - день (например 01), ммм - месяц (например jul), гг - год (например 06) #перед запуском скрипта все папки уже должы быть созданы! #устанавливаем текущий год: set yr=15 set fl=1 while %fl%!='666' send /C input C:\\plan\\Plan.csv indata send %indata% send ; set g=1 set l=1 set fl=extract(1,%l%,1) :lfl set l=%l%+1 set c=extract(1,%l%,1) if %c%!=';' then set g=%g%+1 if %c%!=';' then set fl='%fl%%c%' if %c%!=';' then goto lfl if %fl%=='666' then send /C if %fl%=='666' then send Script complete if %fl%=='666' then exit if %fl%=='509' then goto lblcnt if %fl%=='COD' then goto lblcnt send /R OSHIBKA! SCRIPT OSTANOVLEN! set l=%l%+1 set arn=extract(1,%l%,1) :larn set l=%l%+1 set c=extract(1,%l%,1) if %c%!=';' then set arn='%arn%%c%' if %c%!=';' then goto larn set l=%l%+1 set cnd=extract(1,%l%,1) :lcnd set l=%l%+1 set c=extract(1,%l%,1) if %c%!=';' then set cnd='%cnd%%c%' if %c%!=';' then goto lcnd set l=%l%+1 set city=extract(1,%l%,1) :lcity set l=%l%+1 set c=extract(1,%l%,1) if %c%!=';' then set city='%city%%c%' if %c%!=';' then goto lcity set l=%l%+1 set cityx=extract(1,%l%,1) :lcityx set l=%l%+1 set c=extract(1,%l%,1) if %c%!=';' then set cityx='%cityx%%c%' if %c%!=';' then goto lcityx set l=%l%+1 set date=extract(1,%l%,1) :ldate set l=%l%+1 set c=extract(1,%l%,1) if %c%!=';' then set date='%date%%c%' if %c%!=';' then goto ldate send /C send %fl%//%date%//999// wait 2 set c='extract(1,1,2)' if %c%!='bd' then if %c%!='BD' then set prf='UN' set t=1 set num=extract(1,%t%,1) :lnm set t=%t%+1 set c='extract(1,%t%,1)' if %c%!='/' then set num='%num%%c%' if %c%!='/' then goto lnm set t=%t%+1 set dat='extract(1,%t%,1)' :ldt set t=%t%+1 set c='extract(1,%t%,1)' if %c%!='/' then set dat='%dat%%c%' if %c%!='/' then goto ldt set x='%num%//%dat%' set t=%t%+1 set kp=extract(1,%t%,1) :lkp set t=%t%+1 set c='extract(1,%t%,1)' if %c%!='/' then set kp='%kp%%c%' if %c%!='/' then goto lkp set y=%kp% send /CPDD:%x%%city%,BN1/X find * set st=2 set c='extract(2,2,3)' if %c%!='PDD' then set st=3 set t='extract(%st%,13,1)' if %t%=='/' then set nr=extract(%st%,7,6) if %t%!='/' then set nr=extract(%st%,7,5) if %t%=='/' then set dt=extract(%st%,14,5) if %t%!='/' then set dt=extract(%st%,13,5) if %t%=='/' then set mn=extract(%st%,16,3) if %t%!='/' then set mn=extract(%st%,15,3) set nr='%prf%%num%.txt' set mes='%mn%%yr%' set dat='%dt%%yr%' set name='C:\20%yr%-pdd\%mes%\%dat%\%nr%' output %name% /R set k=0 while %k%<%y% set k=%k%+1 send /CPDD:%x%%city%,BN%k%/X :mylbl find * wait 1 set sr=extract(%st%,1,4) if %sr%!='PDD' then if %sr%!='509' then goto :lbled :lblcnt set ep=extract(24,80,1) set enp=extract(24,76,1) set str=1 while %str%<=24 set txt='extract(%str%,1,80)' set tp=extract(%str%,1,1) output %name% %txt% if %str%==24 then if %ep%=='0' then send /Cpn:/X if %str%==24 then if %ep%=='0' then goto mylbl if %str%==24 then if %enp%=='0' then send /Cpn:/X if %str%==24 then if %enp%=='0' then goto mylbl if %tp%=='»' then if %str%!=1 then set str=24 set str=%str%+1 loop loop exit :lbled set sr=extract(2,1,4) if %sr%=='509' then goto lblcnt set sr=extract(2,4,3) if %sr%=='COD' then goto lblcnt send /R OSHIBKA! SCRIPT OSTANOVLEN! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 12:53 |
|
||
|
SQL в SITA Liaison
|
|||
|---|---|---|---|
|
#18+
В XL файле представлено так: 5552 eixld 111 vko boj 06jul15 135 eiunp 220 dme khv 07jul15 666 Мне надо, что бы после отработки первой строки, цикл вновь перешёл к lfl и считав вторую строку 135 eiunp 220 dme khv 07jul15 из XL прошёл по всем алгоритмам снова, при этом создав новый файл блокнот для записи результата. надеюсь, я понятно тут написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2015, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1540524]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 519ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...