OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 17 Октябрь, 2019 02:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 11:26 

Зарегистрирован: Вторник, 10 Ноябрь, 2009 13:15
Сообщения: 58
Всем доброго, пишу профайлер для форматирования кода (ну чтоб программа все ключевые слова жирным шрифтом писала, большими буквами, а комментарии курсивом и т.д.)
Столкнулся с небольшой проблемкой
Есть в модуле главная процедура
Код:
PROCEDURE Do*(IN Путь:ARRAY OF CHAR);

И на коммандер посажена команда
Код:
Профайлер.Do("C:\Documents and Settings\5097\Рабочий стол\GAME.PAS");

Так вот компилятор выдает при клике по коммандеру сообщение в Log:
Цитата:
Профайлер unloaded
command error: incompatible parameter list in Профайлер.Do

Что это означает, и как правильно вызывать такие процедуры?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 11:48 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Ошибку выдаёт не компилятор, а ББ. В идеале, команда не должна содержать параметров. В ББ команда может в качестве параметров принимать ограниченное количество параметров и типов. Я их сам постоянно забываю.

Где-то на форуме давалась ссылка на полный перечень принимаемых параметров. Нужно поискать.

P.S. Попробуйте для начала изменить кавычки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 11:49 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4512
Откуда: Россия, Орёл
Valery Solovey писал(а):
P.S. Попробуйте для начала изменить кавычки.

^Q "Профайлер.Do('C:\Documents and Settings\5097\Рабочий стол\GAME.PAS')"

Примеры можно найти в описании меню Info->Menus


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 15:13 

Зарегистрирован: Вторник, 10 Ноябрь, 2009 13:15
Сообщения: 58
Спасибо. Поставил так - прошло, но...

"Профайлер.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"
т.е. вроде бы имя файла верно.

Или я чего-то неувидел?
Что я не так делаю?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 17:07 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
locator - это директория, а name - это имя файла внутри директории.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 17:11 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4512
Откуда: Россия, Орёл
Код:
  loc:=Files.dir.This(a$);
  FileName:=a$;
  obj.v:=Views.Old(FALSE,loc,FileName,conv);
и получается что Вы открываете файл "c:\temp\game.txt" из директории "c:\temp\game.txt"


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Декабрь, 2009 17:11 

Зарегистрирован: Вторник, 10 Ноябрь, 2009 13:15
Сообщения: 58
А-а-а-а....
Вот елки... Действительно.
Надо бы еще пару шишок таких получить чтоб запомнить.
Спасибо :wink:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB