Кто-нибудь сталкивался с ограничением на количество переменных в описании процедуры?
Восемь переменных у меня проходят. А вот более - проблема.
Кстати столкнулся с таким интересным фактом (версия 6.3.9059). Только сразу предупреждаю,
что отчеты до настоящего времени я не делал, поэтому этот факт может быть интересен только для меня.
А дело вот в чем. Описываю я целую переменную. Поскольку М с последующими индексами уже заняты, то
я называю ее ММ и иду дальше. При компиляции ничего не могу понять с обращением к процедуре.
Выдаются ошибки компиляции. Запустил в версии 7.0.0.5768. Там редактор по интеснее. Вижу, что эта переменная по цвету отличается от остальных (ММ синего цвета). Оказалось, что это зарезервированная переменная для работы с отчетами и окнами. 6 Клава промолчала, но ошибки компиляции. Поскольку сообщение получилось длинным, еще раз повторяю вопрос:"Есть ли ограничения на количество переменных в описании процедуры?"
О максимальном числе переменных в описании процедуры
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Бывалый
- Сообщения: 61
- Зарегистрирован: 23 Июль 2010, 13:44
- Откуда: С-Петербург
- WadimZapara
- Активист
- Сообщения: 181
- Зарегистрирован: 11 Июнь 2008, 12:11
- Откуда: Тамбов
Re: О максимальном числе переменных в описании процедуры
Даже заинтересовал - сколько ж у тебя параметров?
Я не знаю ограничения на число параметров.
При компиляции может и чуток запутаться...
Предложения:
1) проверь соответствие описания прототипа и самой процедуры
2) если ж точно - нет ошибки в описаниях, но всё равно не хочет - используй параметр-массив
пример взят из клариной документации:

Я не знаю ограничения на число параметров.
При компиляции может и чуток запутаться...
Предложения:
1) проверь соответствие описания прототипа и самой процедуры
2) если ж точно - нет ошибки в описаниях, но всё равно не хочет - используй параметр-массив
пример взят из клариной документации:
Код: Выделить всё
PROGRAM
MAP
AddCount PROCEDURE(*LONG[,] Total,*LONG[,] Current) ! Передача двух двумерных массивов типа LONG
END
TotalCount LONG,DIM(10,10)
CurrentCnt LONG,DIM(10,10)
CODE
AddCount(TotalCount,CurrentCnt) ! Обратиться к процедуре, передав массив
!****
AddCount PROCEDURE(*LONG[,] Total,*LONG[,] Current) ! Процедура ожидает передачи двух массивов
CODE
LOOP I# = 1 TO MAXIMUM(Total,1) ! Цикл по первому индексу
LOOP J# = 1 TO MAXIMUM(Total,2) ! Цикл по второму индексу
Total[I#,J#] += Current[I#,J#] ! увеличить TotalCount из CurrentCnt
END
END
CLEAR(Current) ! Очистить массив CurrentCnt
Компьютер имеет то преимущество перед мозгом, что им пользуются...
-
- Бывалый
- Сообщения: 61
- Зарегистрирован: 23 Июль 2010, 13:44
- Откуда: С-Петербург
Re: О максимальном числе переменных в описании процедуры
Спасибо за ответ. Вопрос принципиальный - почему не идет компиляция, если прога правильная.WadimZapara писал(а):Даже заинтересовал - сколько ж у тебя параметров?![]()
Я не знаю ограничения на число параметров.
При компиляции может и чуток запутаться...
Предложения:
1) проверь соответствие описания прототипа и самой процедуры
2) если ж точно - нет ошибки в описаниях, но всё равно не хочет - используй параметр-массив
Из-за того, что много читаю в памяти отложилось, что где-то видел ограничения на число параметров. Отсюда и вопрос.
Параметров по моим понятиям не много: всего 14. При чем, сначала описывается процедура, затем строка копируется в MAP, а затем вставляется в место вызова и убираются из этой строки ненужное описание. Я не знаю где здесь можно ошибиться.
Передача большого числа параметров через массив - это очень хороший совет.
Дело в том, что в данном случае я не разрабатываю программу, а перевожу ее с фортрана на Клашу.
На первом этапе, по моему мнению, необходимо все сделать один к одному, и только затем вносить необходимые изменения и дополнения. Научен горьким опытом.
Еще раз большое спасибо.
Evgeny2006
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
Re: О максимальном числе переменных в описании процедуры
Ты знаешь,на мой личный взгляд в клаше многопараметрические
процедуры работают несколько косовато.Сталкивлся с этим неоднократно.
Как боролся.Да перед вызовом процедуры заносил нужные параметры в глобальные
переменные.Да, муторно конечно, но жить можно и все вроде работало правильно.
процедуры работают несколько косовато.Сталкивлся с этим неоднократно.
Как боролся.Да перед вызовом процедуры заносил нужные параметры в глобальные
переменные.Да, муторно конечно, но жить можно и все вроде работало правильно.
-
- Бывалый
- Сообщения: 61
- Зарегистрирован: 23 Июль 2010, 13:44
- Откуда: С-Петербург
Re: О максимальном числе переменных в описании процедуры
То, что косовато работает, так это практически в каждой системе, начиная с достопочтимого Фортрана.lsgsoftware писал(а):Ты знаешь,на мой личный взгляд в клаше многопараметрические
процедуры работают несколько косовато.Сталкивлся с этим неоднократно.
Как боролся.Да перед вызовом процедуры заносил нужные параметры в глобальные
переменные.Да, муторно конечно, но жить можно и все вроде работало правильно.
Поскольку я на Клаше только начинаю работать, то неизбежны проблемы, найти которые иногда не так просто,
особенно когда ищешь не в том месте.
ДП любезно согласился посмотреть текст программы. И мгновенно нашел у меня в тексте программы ошибку:
несоответствие типов. За это ему огромное спасибо. Я также искал эту ошибку, но в другом месте- и естественно ее там не нашел.
Где-то при чтении документации (хотя может быть и не по Клаше) упоминалось об ограничении на число передаваемых параметров. Поэтому и возник сам вопрос.
Ошибка найдена. Ограничений нет. Вопрос закрывается.
Evgeny2006