| 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 | 
		 | 
	
	
		  | 
	
	
		 |