Page 1 of 1

Какие-то ошибки странные...

Posted: 21.01.2007 18:32
by Vizit0r

Code: Select all

18:31:37 [Kraggash]: Character Ze Kraggash Connected.
18:31:39 [Kraggash]: Compiling
18:31:40 [Kraggash]: Compiled succesfully
18:31:40 [Kraggash]: Type Mismatch at 49.686
18:31:40 [Kraggash]: Script custom stoped successfuly
что это вообще такое?

Что характерно, на маге запустилось пару раз без ошибок - т.е. скрипт висел в памяти.
Потом я зашел крафтом, под которого и писался скрипт - и все, пошла эта ошибка, теперь и на маге не запускается... :?:

P.S.При необходимости могу выслать лог.

Posted: 21.01.2007 21:04
by Edred
Не соответствие типов. В 49 строке. В 686 позиции!?! Либо у тебя в скрипте реально такая длинная строка, либо ты в редакторе скриптов случайно в эту позицию воткнул случайный символ, который и дает такую ошибку.

Posted: 21.01.2007 21:17
by Vizit0r
Когда ошибка - сообщения другие
вот пример разрыва слова then в той же строке

Code: Select all

21:17:25 [Kraggash]: Compiling
21:17:25 [Kraggash]: Compiler: [Error] (сбор регов at 49:21):  'THEN' expected
21:17:25 [Kraggash]: Compiling failed
21:17:25 [Kraggash]: Script сбор регов stoped successfuly

P.S. В строке гарантированно 36 симоволов, проверено.
кстати, строка эта 49 с Едредовской ходлки

Code: Select all

         if dy > dx then dx := dy; 

тут банально нету несовместимых переменных...

Posted: 21.01.2007 22:38
by DoomStar
А у тебя комп ваще нормально работает? не перегревается ли :)

попробуй ходилку ещё раз с форума скопировать, может реально какойто мега извратский символ в файлике со скриптом.

Posted: 21.01.2007 22:56
by Vizit0r
с компом все отлично, другие скрипты и все осстальное - гоняют отлично
в процессе перепроверки всего чего только можно было
возник вопрос

P.S. вопрос отпал, ковыряю дальше...

Re: Какие-то ошибки странные...

Posted: 22.01.2007 8:44
by CFA
Vizit0r wrote:

Code: Select all

18:31:37 [Kraggash]: Character Ze Kraggash Connected.
18:31:39 [Kraggash]: Compiling
18:31:40 [Kraggash]: Compiled succesfully
18:31:40 [Kraggash]: Type Mismatch at 49.686
18:31:40 [Kraggash]: Script custom stoped successfuly
что это вообще такое?
это не номер строки, а непонятно что. такая ошибка возникала при работае например с не(правильно)инициализированным TStringList, при работе с динамическими массивами. отлову поддаеться с трудом, тк не всегда понятно где искать, приходится добавлять отладочные сообщения в подозрительных местах.

Posted: 23.01.2007 9:39
by Vizit0r
суть ошибки была такова
вот принцип, который был изначально

Code: Select all

program test;
...
procedure a;
var
abc : Array[0..100] of Cardinal];
begin
....
if ... then b(abc);
...
end;

procedure b(arr: Array[0..100] of Cardinal]);
begin
...
// тут идет работа с массивом
end;
при вызове процедуры b - появляется вот та самая неизвестная ошибка.

вот вариант правильный:

Code: Select all

program test;
type
ArrayType = Array[0..100] of Cardinal;
...
procedure a;
var
abc : ArrayType;
begin
....
if ... then b(abc);
...
end;

procedure b(arr: ArrayType);
begin
...
//тут идет работа с массивом
end;

Posted: 24.01.2007 0:45
by Edred
Нормально. Естественно.

Code: Select all

arr: Array[0..100] of Cardinal]
То есть переменная arr, тип Array[0..100] of Cardinal. Найди в мне в руководстве по Паскалю тип переменных "Array[0..100] of Cardinal".

Posted: 24.01.2007 10:11
by Vizit0r
не очень понял, тип Array [0..n] of _тип_ - в паскале есть.

что тогда не так?

Posted: 24.01.2007 16:56
by Acronym
Визя, тут кстати в твоем посте лишняя скоба Cardinal]

Posted: 24.01.2007 17:09
by Miralex
Вообщем поделю я вас. Суть в том, что Pascal Scripts "сложные" типы данных считает разными, если они не объявленные в начале программы через type. В данном случае Array[0..100] of Cardinal для него "сложный" тип и надо использовать так:

Code: Select all

type
MyArray = Array[0..100] of Cardinal;
var MyValue : MyArray;
и тд ...