| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| rn 
 
 
 Joined: 21 Jun 2004
 Posts: 5
 Location: Нефедьев Ростислав
 Occupation: Инфософт
 Interests: Волгоград
 
 | 
			
				|  Posted: 19 Sep 2005 12:30    Post subject: Простая программа |   |  
				| 
 |  
				| Текст программы: sayandwait("First line")
 Function one()
 sayandwait("in function")
 Return Nil
 EvalFun("one")
 
 Эта программа выводит на экран в варианте FileEval (запуск через prg-файл):
 - First line
 - in function
 В варианте HFileEval (запуск через hrb-файл):
 - First line
 Т.е вызова функции не происходит. При трассировке в отладчике замечено что программа завершает свою работу после перехода со строки 2 ("Function one").
 
 Программа запускается в БЭСТ4+ 12.01 sp1
 
 Что я делаю не так?
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 19 Sep 2005 12:53    Post subject: |   |  
				| 
 |  
				| В харбор надо 
  	  | Code: |  	  | FUNCTION main() 
 sayandwait("First line")
 One()
 
 RETURN NIL
 
 FUNCTION One()
 sayandwait("in function")
 Return Nil
 | 
 
 Т.е. обязательно MAIN() во-первых, а во вторых ни каких EVALFUN() не надо - работайте как в обычном клиппере
 FileEval() этого не умел вот и приходилось всякими спомогательными функциями пользоваться типа EVALFUN() FORMULPARSBLOCK()  -теперь это в прошлом, их следует забывать - сразу блок кода или функция и никаких гвоздей
  |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| rn 
 
 
 Joined: 21 Jun 2004
 Posts: 5
 Location: Нефедьев Ростислав
 Occupation: Инфософт
 Interests: Волгоград
 
 | 
			
				|  Posted: 19 Sep 2005 12:58    Post subject: |   |  
				| 
 |  
				| Спасибо, все заработало! Обязательно ли тест основной программы оформлять в виде функции напр. Main?
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| nordk 
 
 
 Joined: 27 Jun 2005
 Posts: 1000
 Location: Горбунов Константин
 Occupation: БЭСТ-Партнер
 Interests: СПб
 
 | 
			
				|  Posted: 19 Sep 2005 13:07    Post subject: |   |  
				| 
 |  
				| Обязательно И ТОЛЬКО MAIN !!! |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Behemoth 
 
  
 Joined: 15 Mar 2002
 Posts: 155
 Location: Новиков Алексей Юрьевич
 Occupation: ПБОЮЛ
 Interests: Пермь
 
 | 
			
				|  Posted: 21 Sep 2005 17:45    Post subject: |   |  
				| 
 |  
				| Добрый день. 
 Может все зависит от того, где происходит компиляция?
 
 В "среде разработки по F11" запускается первая найденная функция (не обязательно main), а все операторы вне функций игнорируются.
 
 При компиляции в командной строке выполняются операторы, которые вне функций, например, будет работать следующая конструкция:
 mymain()
 function mymain()
 return
 
 Может зарезервируем слово MAIN за разработчиком?
  _________________
 С уважением, Новиков Алексей.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |