Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 12:44

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Цитаты из файла
СообщениеДобавлено: Пт июн 29, 2007 10:13 
Не в сети

Зарегистрирован: Пт июн 29, 2007 09:58
Сообщения: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
hi
в переменной af текст обрезается до 255 символов, помогите исправить
ну и скрипт если можно улучшить, тоже будет отлично )


Код:
Time: 10,50 * * * * *
Also
WatchHotKey: "^@m"
USER-VALUE rnd
USER-VALUE cnt
USER-VALUE total
USER-CREATE af 955 ALLOT
: str S" D:\Site\7\s\bashorg.txt"  FILE
Action:
BEEP: 1000 1000

RE-ALL: "%str%" "/\{(.+?)\}/s"
   cnt 1 + TO cnt
;RE-ALL

cnt RANDOM TO rnd
cnt TO total
0 TO cnt

RE-ALL: "%str%" "/\{(.+?)\}/s"
   cnt 1 + TO cnt
   cnt rnd =
      IF
      S" %$1%" EVAL-SUBST af PLACE
      \ MSG: "RND: %rnd% CNT: %cnt% AF: %af COUNT%"
      THEN
;RE-ALL

TQUERY: "TOTAL AFORIZM: %total% RND: %rnd%%crlf%%af COUNT%%crlf%%crlf% (click 'Ok' to clipboard)" 30 No
IF
CLIPBOARD: "%af COUNT%"
BALLOON: "COPY TO CLIPBOARD ... ok" " "
PAUSE: 3000
BALLOON: "" ""
THEN

_________________
Изображение


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 29, 2007 11:32 
---


Последний раз редактировалось profiT Сб мар 01, 2008 01:04, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 29, 2007 11:38 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Очевидно проблема в том что используются counted строки (cлова PLACE COUNT), они по принципу построения ограничены 255-ю символами. Попробуйте так : определить af как VALUE, заменить af PLACE на S>ZALLOC TO af и все af COUNT на af ASCIIZ>.
В определении слова str разве не пропущена завершающая точка с запятой?

_________________
http://forth.org.ru/~ygrek


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

Зарегистрирован: Пт июн 29, 2007 09:58
Сообщения: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ygrek
ооо работает :D респект !
ygrek писал(а):
В определении слова str разве не пропущена завершающая точка с запятой?

не знаю, работает без ошибок )
я это из help по nncron взял

profiT
я понимаю, что ограничение 255, (955 на авось поставил)
порылся в мануалах, сходу не дошло как исправить


Да еще небольшая проблемка:
CLIPBOARD: "%af ASCIIZ>%"
копирует в буфер кракозябы, если еще бы и это поправить было бы совсем гуд )

_________________
Изображение


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


Последний раз редактировалось profiT Сб мар 01, 2008 01:04, всего редактировалось 1 раз.

Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт июн 29, 2007 12:57 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
blam писал(а):
Да еще небольшая проблемка:

CLIPBOARD: "%af ASCIIZ>%"

копирует в буфер кракозябы, если еще бы и это поправить было бы совсем гуд )


Кракозябы -> проблемы с кодировкой -> поиск в help.chm идущем в комплекте с nnCron по слову encoding

_________________
http://forth.org.ru/~ygrek


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

Зарегистрирован: Пт июн 29, 2007 09:58
Сообщения: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
пробовал
CLIPBOARD: "%af ASCIIZ> OEM2WIN%"
CLIPBOARD: "%af ASCIIZ> WIN2OEM%"

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

запустил буфер clipbrd.exe, если поставить формат 'текст' то нормально отображается, если по умолчанию, то так :
Ëîðä (22:25:48 27/06/2007)
Ðàçãðåáàÿ çàâàëû íà âèí÷åñòåðå íàøåë çàïðÿòàííóþ ïîðíóøêó â ïàïêå ìóçûêà. Ýòî ñàìûé ïåðâûé ïîðíîôèëüì, äóìàåøü â äàëåêîì 2001 íà 10ãèãîâîì âèí÷åñòåðå áûëî ïðîñòî ñïðÿòàòü 600ìåòðîâûé ôàéë? Íîñòàëüãèÿ, áëèí. äåòñòâî

_________________
Изображение


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

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Это уже MSDN читать надо. Там в clipboard'e какие-то игры с форматами и кодировками происходят. Может UNICODE попробовать?

_________________
http://forth.org.ru/~ygrek


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

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Код:
Time: 10,50 * * * * *
Also
WatchHotKey: "^@m"
USER-VALUE rnd
USER-VARIABLE cnt
USER-VALUE total
: str S" D:\Site\7\s\bashorg.txt"  FILE ;
Action:
BEEP: 1000 1000

RE-ALL: "%str%" "/\{(.+?)\}/s"
   cnt 1+!
;RE-ALL

cnt @ RANDOM TO rnd
cnt @ TO total
cnt 0!

RE-ALL: "%str%" "/\{(.+?)\}/s"
   cnt 1+!
   cnt rnd =
   IF
      $1 2DUP
      S" TOTAL AFORIZM: " total N>S S+ S" RND: " S+ rnd N>S S+ crlf S+
      2SWAP S+ crlf S+ crlf S+ S" (click 'Ok' to clipboard)" S+ 30 No TQUERY
      IF
         CLIPBOARD!
         S" COPY TO CLIPBOARD ... ok" S" " BALLOON
         PAUSE: 3000
         S" " S" " BALLOON
      ELSE 2DROP THEN
     EXIT
      THEN
;RE-ALL

Вроде должно работать.
А вот вставка случайной цитаты прямиком с сайта:
Код:
#( Башорг>>
Rule: ONLINE?
WatchHotKey: "^{0xBC}"   \ Контрол+Б
\ Обрезает строку 1 после строки 2 включительно
: CropFromString { a1 u1 a2 u2 -- }
  a1 u1 a2 u2 SEARCH IF DROP a1 - a1 SWAP ELSE 2DROP 0 THEN ;
\ В первой строке заменить вторую строку на третью
: StringRep { a1 u1 a3 u3 a4 u4 \ rest a2 u2 -- }    ( a1 u1 a2 u2 a3 u3 -- )
  1 ALLOCATE THROW TO a2
  a2 0! 0 TO u2
  a1 u1
  BEGIN OVER SWAP a3 u3 SEARCH WHILE
  TO rest SWAP 2DUP - a2 u2 2SWAP S+ TO u2 TO a2
  a4 u4 a2 u2 2SWAP S+ TO u2 TO a2
  rest u3 /STRING
  REPEAT
  a2 u2 2SWAP S+
  ROT DROP
;

: past
0 1 69 162 keybd_event DROP
0 1 69 86 keybd_event DROP
0 3 69 86 keybd_event DROP
0 3 69 162 keybd_event DROP
;

: PAST! CLIPBOARD 2SWAP CLIPBOARD! past CLIPBOARD! ;
Action:
S" "  S" Загрузка цитаты..." BALLOON
S" http://bash.org.ru/random" HTTP-GET
  DROP S" /quote/" SEARCH
   IF
      S" <div>" SEARCH
      IF
         S" </div>" CropFromString
         S" <br>" crlf StringRep
         S" <br />" crlf StringRep
         5 -5 D+
         \ На стеке цитата
         PAST!   \ Вставляем в текущее активное окно
         S" " S" Цитата вставлена"  BALLOON
         S" " S" " BALLOON
      ELSE 2DROP THEN
   ELSE 2DROP THEN
)#

Единственный минус - хтмловские коды символов останутся, для этого нужно только добавить слово заменяющее эти коды на нормальные символы.

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


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

Зарегистрирован: Пт июн 29, 2007 09:58
Сообщения: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ygrek
а как попробовать UNICODE ?

VoidVolker
тут ругается nncron на :
Цитата:
Time: 10,50 * * * * *
Also
WatchHotKey: "^@m"
USER-VALUE rnd


\ VARIABLE заменил на VALUE
USER-VALUE cnt


USER-VALUE total
: str S" D:\Site\7\s\bashorg.txt" FILE ;
Action:
BEEP: 1000 1000

RE-ALL: "%str%" "/\{(.+?)\}/s"
cnt 1+!
;RE-ALL

cnt @ RANDOM TO rnd
cnt @ TO total
cnt 0!

RE-ALL: "%str%" "/\{(.+?)\}/s"
cnt 1+!
cnt rnd =
IF
$1 2DUP
S" TOTAL AFORIZM: " total N>S S+ S" RND: " S+ rnd N>S S+ crlf S+


/ тут не понял на что, поставил QUERY - ругаться перестал, но при выполнении error
2SWAP S+ crlf S+ crlf S+ S" (click 'Ok' to clipboard)" S+ 30 No TQUERY


IF
CLIPBOARD!
S" COPY TO CLIPBOARD ... ok" S" " BALLOON
PAUSE: 3000
S" " S" " BALLOON
ELSE 2DROP THEN
EXIT
THEN
;RE-ALL


ps спасибо за пример
плаваю я в этом форте

_________________
Изображение


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

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


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

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


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

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