powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / SQL в SITA Liaison
2 сообщений из 2, страница 1 из 1
SQL в SITA Liaison
    #39000454
Zigzag_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемые!

Я не силён в программировании, но мне нужна помощь в корректировке существующего цикла.
Работа цикла завязана на использовании таблицы в 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!
...
Рейтинг: 0 / 0
SQL в SITA Liaison
    #39000463
Zigzag_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В XL файле представлено так:

5552 eixld 111 vko boj 06jul15
135 eiunp 220 dme khv 07jul15
666

Мне надо, что бы после отработки первой строки, цикл вновь перешёл к lfl и считав вторую строку 135 eiunp 220 dme khv 07jul15 из XL прошёл по всем алгоритмам снова, при этом создав новый файл блокнот для записи результата.

надеюсь, я понятно тут написал
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / SQL в SITA Liaison
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]