Page 1 of 1

помогите с синтаксисом

Posted: 03.02.2017 2:13
by untoha
1 год ничего не делали со стелсом, вернулся, тут новая версия 7.9.0.
обновился, но то, что раньше работало как часы, теперь выдает ошибки на старте. сижу адаптирую код под новую версию

Code: Select all

program testprogram;
var testarr: array[1..7] of integer;

procedure testproc();
var test : integer;
begin	
	test := Length(testarr);	// <<< 7 line error
end;

begin  	
end.  
Compiler: [Error] (test.sc at 7:24): There is no overloaded version of "length" that can be called with these arguments ;

что не так с глобальным массивом testarr, почему он не нравится length? вроде никаких перегрузок, в length либо стринг либо массив же

Re: помогите с синтаксисом

Posted: 03.02.2017 2:17
by untoha
видимо лучше использовать high()

Re: помогите с синтаксисом

Posted: 03.02.2017 2:54
by untoha
после массовой замены Length( на High( не в приведенном примере, а в старой тонне кода, теперь вылезает окно с ошибкой и предложением ковырятся в ассемблеме, который я ненавижу
Image

Re: помогите с синтаксисом

Posted: 03.02.2017 10:26
by Vizit0r
странно, мда.
Исправлю.

Насчет "после массовой замены Length( на High( не в приведенном примере, а в старой тонне кода"
пример покажи куска скрипта.


видимо зло в том, что
High(XXX) равно Length(XXX)-1
и где-то эта разница у тебя сыграла.

Re: помогите с синтаксисом

Posted: 03.02.2017 10:44
by Vizit0r
исправил, сегодня ночью выложу в апдейт.

Re: помогите с синтаксисом

Posted: 03.02.2017 15:03
by untoha
ошибки поправил, вроде все норм с high(array)
т.е. length(array) не так уж прям критично

отдельное спасибо за evSetGlobalVar, мне пригодится, буду юзать

Re: помогите с синтаксисом

Posted: 03.02.2017 18:02
by untoha
присваивание массива тоже крашит, можно поэлементно, но было так удобно

Code: Select all

program testprogram;
var testarr: array[1..7] of integer;
var testarr2: array[1..7] of integer;
begin  
	testarr[1] := 123;
	testarr := testarr2;	
end.  
Exec: [Error] (test.sc at line 24). Pax Unhandled Exception : Invalid class typecast
Error line is: " testarr := testarr2; "

Re: помогите с синтаксисом

Posted: 04.02.2017 4:33
by Vizit0r
исправлено. Как обычно - чинили одно, а зацепило совсем другое и в другом месте.

Через час будет апдейт стелса.