Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
глобальная корректировка, ошибка формата 57
Пользователь: ski (IP-адрес скрыт)
Дата: 15, September, 2014 14:49

Подскажите куда копать, корректировка:
0
REP
621^*
F
(if v621*0.1>=&uf('+9F192') and v621*0.1<=&uf('+9F255') and v621*1.1=' ' and v621*2.1>='0' and v621*2.1<='9' then v621*0.1,v621*2 else v621 fi /)
XXXXXXXXXXXXXXXXXXX

должна удалять лишний пробел в ББК между первой буквой и следующей цифрой. В редакторе форматов работает. юнифор +9 потому как русские буквы коверкаются корректировкой (что делать?). В cp1251 от 192 до 255 находятся русские буквы.

Re: глобальная корректировка, ошибка формата 57
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 16, September, 2014 14:34

ski написал(а):
-------------------------------------------------------
> Подскажите куда копать, корректировка:
> 0
> REP
> 621^*
> F
> (if p(v621)then if v621*0.1>=&uf('+9F192') and
> v621*0.1<=&uf('+9F255') and v621*1.1=' ' and
> v621*2.1>='0' and v621*2.1<='9' then
> v621*0.1,v621*2 else v621 fi fi/)
> XXXXXXXXXXXXXXXXXXX
>
> должна удалять лишний пробел в ББК между первой
> буквой и следующей цифрой. В редакторе форматов
> работает. юнифор +9 потому как русские буквы
> коверкаются корректировкой (что делать?). В cp1251
> от 192 до 255 находятся русские буквы.

Так:
(if p(v621)then if v621*0.1>=&uf('+9F192') and
> v621*0.1<=&uf('+9F255') and v621*1.1=' ' and
> v621*2.1>='0' and v621*2.1<='9' then
> v621*0.1,v621*2 else v621 fi fi/)

Re: глобальная корректировка, ошибка формата 57
Пользователь: ski (IP-адрес скрыт)
Дата: 18, September, 2014 12:57

Помогло. А почему?

Как быть с национальными символами?

Re: глобальная корректировка, ошибка формата 57
Пользователь: Сорокина Лариса (IP-адрес скрыт)
Дата: 18, September, 2014 15:13

ski написал(а):
-------------------------------------------------------
> Помогло. А почему?
>
Потому что ошибка 57 - это ошибка отсутствия проверки окончания цикла в группе.

> Как быть с национальными символами?

А что с ними?
Вообще ваше задание могло бы быть таким:
0
REP
621^*
F
(if p(v621) then if v621*0.1<>'0'and val(v621*0.1)=0 and v621*1.1=' ' and (v621*2.1='0' or val(v621*2.1)<>0) then v621*0.1,v621*2 else v621 fi fi/)
XXXXXXXXXXXXXXXXXXX



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.