RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > Налетел на такую проблему: > > ===== > > /**/ > > !globalv = '!REXXDW. !global. ind. items.' > > !globalv=!globalv' Base. PumpBase. Sql. test.' > > > > call testproc 'test' > > say 'test.structure='test.structure > > say 'test.tabtype='test.tabtype > > say 'test.structure1='test.structure1 > > say 'test.tabtype1='test.tabtype1 > > exit > > > > testproc: Procedure Expose (!globalv) > > rc=Arg(1) > > Structure='test1' > > TabType='COM' > > call value rc'.Structure',Structure > > call value rc'.TabType',Tabtype > > call value rc'.Structure1',Structure > > call value rc'.TabType1',Tabtype > > > > say '*test.structure='test.structure > > say '*test.tabtype='test.tabtype > > say '*test.structure1='test.structure1 > > say '*test.tabtype1='test.tabtype1 > > return > > ===== > > Возврат будет таким: > > *test.structure=test1 > > *test.tabtype=COM > > *test.structure1=test1 > > *test.tabtype1=COM > > test.structure=TEST.STRUCTURE > > test.tabtype=TEST.TABTYPE > > test.structure1=test1 > > test.tabtype1=COM > > > > > > Кто кажет почему такая фигна, и как её обойти? Уже сутки мозги ломаю. > > Ошибка в том, что в подпрограмме используешь локальные переменные "Structure" и "TabType", а потом их же используешь, как часть переменной "test.", при этом там, фактически, вместо "Structure" и "TabType" подставляются их значения. Это какая фишка REXX...
_, _, _, _, _ _ _,_
(_ | / \ |\ | | |_/
, ) | , \ / | \| | | \
~ ~~~ ~ ~ ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.