Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 00:36

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ограничения в содержимом au-строки определяемой через S"
СообщениеДобавлено: Чт июл 16, 2009 10:35 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Сталкнулся со следующей непонятной для меня ситуацией:
есть простая вроде бы задачка (упростил как мог)
Код:
#( CLASSIC-TASK-#-Test
\ зацикливание
\ NoActive
WatchHotKey: "^t"
Action:
  TRAY-REFRESH
  S" Начали" MsgBox
  S" блабл='left' блабл='блаб_блабл'><b>блабл бл блаб блабла бла б блаблабл:<бл />1. Блабла блаблаб блаблабл блаблаб б блабла бла блабл б блабл(блаблабл бла блаблабл блаблабл блаблабла)бла блаб блаблаблаб блаб блаблаб б блабла<бл />3. БЛаб блаблаблаб блабл</b></td>"
  2DROP
  S" Закончили" MsgBox
)#
Первая и последнии au-строки - для контроля работы задачки, а вот вторая..., вообще-то это был html-код, который я как смог заменил на "блаблабла" , возможно и еще есть возможность часть этой строки вырезать/заменить, но перебирать все возможные комбинации - нет времени...
Так вот в таком состоянии эта задача при запуске зацикливается на выводе первого окошка, остановить можно только рестартом nnCron'а.
В результате манипуляций с содержимым второй au-строки можно добиться:
- нормальной работы задачи - последовательное появление двух окошек и выход из задачи;
- завершение с ошибкой, например "Внутренняя ошибка. Error # -1073741819";
- падение nnCron'а с последующий перезапуском благодаря гуарду...
Проверял с дефолтным nncron.ini и этой единственной добавленной задачей, на XP SP2 c последним релизом nnCron'а от 2006 года
Я уже второй день пытаюсь выяснить причину такого "нелогичного" для меня поведения nnCron'а, но уже не знаю куда копать... самое вероятное что мне приходит в голову, так это то, что в этой строке есть иммэдиейт слово которое "ломает" парсинг этой строки до закрывающей кавычки, но что-то я его тут "в упор не вижу" :? ...
Так вот прошу:
1. проверьте у себя эту задачу - проблема в этой строке или у меня в компе?
2. если проблем в строке, то в чем именно?

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: ограничения в содержимом au-строки определяемой через S&
СообщениеДобавлено: Чт июл 16, 2009 10:58 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
makrus писал(а):
Я уже второй день пытаюсь выяснить причину такого "нелогичного" для меня поведения nnCron'а, но уже не знаю куда копать... самое вероятное что мне приходит в голову, так это то, что в этой строке есть иммэдиейт слово которое "ломает" парсинг этой строки до закрывающей кавычки, но что-то я его тут "в упор не вижу" :? ...
Так вот прошу:
1. проверьте у себя эту задачу - проблема в этой строке или у меня в компе?
2. если проблем в строке, то в чем именно?

А ты в курсе, что твоя строка весит 260 байт?
Стандартные счётные строки должны быть не более 255 байт!
Для длинных строк есть 0-строки!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 16, 2009 11:15 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Помошь>Дополнительная информация>Решение возникающих проблем>13. Накладывает ли nnCron какие-то ограничения на размер кронтаба, длину строки в кронтабе, общее количество задач?
Цитата:
Фактическое ограничение только одно: длина одной строки в кронтабе не должна превышать 512 символов.

Но на самом деле строки больше 255 символов все равно вызывают ошибки. Поэтому большие тексты лучше подгружать из отдельных файлов.

Ilya писал(а):
Стандартные счётные строки должны быть не более 255 байт!
Для длинных строк есть 0-строки!

Это утверждение верно только для строк с однобайтным счетчиком в начале строки, вида C" текст". К строкам вида S" текст" оно не применимо, т.к. счетчик в таких строках является отдельным 4-х байтным числом.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 16, 2009 11:25 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
попробуйте сделать более короткую строку, или, даже, обойтись без нее в начале.
Если все будет нормально. Удлиняйте по-тихоньку :)
я так понимаю, S" в nncron занимается форматным преобразованием?
если нет, то весь текст от S" bla bla ... " до завершающей кавычки должен располагаться в одной строке!

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 16, 2009 11:32 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
mOleg писал(а):
я так понимаю, S" в nncron занимается форматным преобразованием?

Нет, не занимается, обычные строки. Форматное преобразование осуществляется таким образом:
Код:
S" текст%любой код, возвращающий число или a u строку%еще текст" EVAL-SUBST

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 16, 2009 16:18 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Ilya
Цитата:
А ты в курсе, что твоя строка весит 260 байт?
угу, а в оригинале еще больше. Да ты прав, слишком большая строка..., самое обидное что я вчера и эту версию проверял (это я точно помню), но nnCron, видимо, так же падал и я стал искать дальше, наверное все-таки подсунул строку длинее 255, а как верно сказал VoidVolker
Цитата:
...на самом деле строки больше 255 символов все равно вызывают ошибки

Всем спасибо, как всегда "ларчик просто открывался" :shuffle;

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 16, 2009 16:37 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
makrus
Кстати, я для генерации простых хтмл из кронтаба делаю так:
Код:
\  # Компиляция тегов как строковых литералов
: TEG?  ( a u -- ? ) DROP C@ [CHAR] <  = ;
: DO-TEG  ( a u -- )
  2DUP S" >" SEARCH 0= NIP NIP  \ Проверяем наличие закрывающего символа в найденом слове
  IF
    S"  " S+ [CHAR] > PARSE 1+ S+  \ Если нету - дописываем пробел и парсим до закрывающего символа
  THEN
  [COMPILE] SLITERAL POSTPONE S+
;

WARNING @
WARNING OFF
: NOTFOUND ( a u -- )
  2DUP 2>R ['] NOTFOUND CATCH
  IF
    2DROP
    2R@ TEG? IF 2R@ DO-TEG ELSE -2003 THROW THEN
  THEN
  RDROP RDROP
;
WARNING !

А потом вот так:
Код:
<teg someparam="nnn" elseparam="m"> TYPE CR </teg> TYPE CR

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 17, 2009 08:12 
Не в сети

Зарегистрирован: Пн сен 10, 2007 16:48
Сообщения: 18
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
VoidVolker
Цитата:
для генерации простых хтмл из кронтаба делаю так
сам код я вроде понял, но никак с наскоку не соображу конечная цель какая? Представить кронтаб в виде html-файла окружив Слова тегами?

_________________
все познается в сравнении


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июл 17, 2009 14:13 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
makrus писал(а):
сам код я вроде понял, но никак с наскоку не соображу конечная цель какая? Представить кронтаб в виде html-файла окружив Слова тегами?

Да это же обыкновенное упрощение синтаксиса создания хтмл-кода, сравни:
Код:
S" <teg someparam=" QUOTE S+ S" nnn" S+ QUOTE S+ S"  elseparam=" S+ QUOTE S+ S" m" S+ QUOTE S+ S" >" S+ TYPE CR S" </teg>" TYPE CR

и
Код:
<teg someparam="nnn" elseparam="m"> TYPE CR </teg> TYPE CR

Т.е. вместо сложения кучи строк, получаем пару понятных и простых строк, сразу видно - где хтмл, а где данные.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


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

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB