OberonCore https://forum.oberoncore.ru/ |
|
коммандер - incompatible parameter list - что я нетак делаю? https://forum.oberoncore.ru/viewtopic.php?f=1&t=2201 |
Страница 1 из 1 |
Автор: | Виталий [ Понедельник, 14 Декабрь, 2009 11:26 ] |
Заголовок сообщения: | коммандер - incompatible parameter list - что я нетак делаю? |
Всем доброго, пишу профайлер для форматирования кода (ну чтоб программа все ключевые слова жирным шрифтом писала, большими буквами, а комментарии курсивом и т.д.) Столкнулся с небольшой проблемкой Есть в модуле главная процедура Код: PROCEDURE Do*(IN Путь:ARRAY OF CHAR); И на коммандер посажена команда Код: Профайлер.Do("C:\Documents and Settings\5097\Рабочий стол\GAME.PAS"); Так вот компилятор выдает при клике по коммандеру сообщение в Log: Цитата: Профайлер unloaded command error: incompatible parameter list in Профайлер.Do Что это означает, и как правильно вызывать такие процедуры? |
Автор: | Valery Solovey [ Понедельник, 14 Декабрь, 2009 11:48 ] |
Заголовок сообщения: | Re: incompatible parameter list - что я нетак делаю? |
Ошибку выдаёт не компилятор, а ББ. В идеале, команда не должна содержать параметров. В ББ команда может в качестве параметров принимать ограниченное количество параметров и типов. Я их сам постоянно забываю. Где-то на форуме давалась ссылка на полный перечень принимаемых параметров. Нужно поискать. P.S. Попробуйте для начала изменить кавычки. |
Автор: | Евгений Темиргалеев [ Понедельник, 14 Декабрь, 2009 11:49 ] |
Заголовок сообщения: | Re: incompatible parameter list - что я нетак делаю? |
Valery Solovey писал(а): P.S. Попробуйте для начала изменить кавычки. ^Q "Профайлер.Do('C:\Documents and Settings\5097\Рабочий стол\GAME.PAS')" Примеры можно найти в описании меню Info->Menus |
Автор: | Виталий [ Понедельник, 14 Декабрь, 2009 15:13 ] |
Заголовок сообщения: | Re: коммандер - incompatible parameter list - что я нетак делаю? |
Спасибо. Поставил так - прошло, но... "Профайлер.Do('c:\temp\game.txt')" Вот так вот пытаюсь открыть: Код: PROCEDURE Do*(AFileName:ARRAY OF CHAR); VAR c:CHAR;i:INTEGER; BEGIN StdLog.Clear; TabCount:=0; IF ~connect(AFileName) THEN StdLog.String("Неудача"); RETURN; END; ... Код: (*Открывает файл и готовит к работе*) PROCEDURE connect(a:ARRAY OF CHAR):BOOLEAN; VAR ask:BOOLEAN; loc:Files.Locator; FileName:Files.Name; conv:Converters.Converter; BEGIN conv:=NIL; IF a='' THEN loc:=NIL; obj.v:=Views.Old(TRUE,loc,FileName,conv); ELSE loc:=Files.dir.This(a$); FileName:=a$; obj.v:=Views.Old(FALSE,loc,FileName,conv); END; IF (obj.v#NIL)&(obj.v IS TextViews.View) THEN obj.m:=obj.v(TextViews.View).ThisModel(); scan.ConnectTo(obj.m); scan.type:=TextMappers.string; RETURN TRUE; ELSE IF loc.res#0 THEN StdLog.String("Неверный локатор");StdLog.Tab; StdLog.Int(loc.res);StdLog.Ln; END; RETURN FALSE; END; END connect; В результате нарываюсь на Цитата: Неверный локатор 1 Тот самый который invalid parameter (name or locator) В TRAP заглянул там .path HostFiles.FullName "c:\temp\game.txt" т.е. вроде бы имя файла верно. Или я чего-то неувидел? Что я не так делаю? |
Автор: | Valery Solovey [ Понедельник, 14 Декабрь, 2009 17:07 ] |
Заголовок сообщения: | Re: коммандер - incompatible parameter list - что я нетак делаю? |
locator - это директория, а name - это имя файла внутри директории. |
Автор: | Евгений Темиргалеев [ Понедельник, 14 Декабрь, 2009 17:11 ] |
Заголовок сообщения: | Re: коммандер - incompatible parameter list - что я нетак делаю? |
Код: loc:=Files.dir.This(a$); и получается что Вы открываете файл "c:\temp\game.txt" из директории "c:\temp\game.txt"
FileName:=a$; obj.v:=Views.Old(FALSE,loc,FileName,conv); |
Автор: | Виталий [ Понедельник, 14 Декабрь, 2009 17:11 ] |
Заголовок сообщения: | Re: коммандер - incompatible parameter list - что я нетак делаю? |
А-а-а-а.... Вот елки... Действительно. Надо бы еще пару шишок таких получить чтоб запомнить. Спасибо |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |