А можно ли сделать так...

Обсуждение программ nnCron и nnCron LITE

А можно ли сделать так...

Postby StasK » Mon, 08 Nov 2004, 10:49

Доброе время суток !!!


Делал ли кто-нибудь сумму прописью в nnCrone (например, в буфере есть число, жмешь хот-кей, nnCron берет число из буфера преобразует в сумму прописью и кладет обратно в буфер).

Если нет подскажите как это можно сделать ???
User avatar
StasK
 
Posts: 18
Joined: Fri, 27 Aug 2004, 21:48

Postby roman78 » Mon, 08 Nov 2004, 19:52

сразу скажу что не смогу помочь, но все равно хотелось бы понять что тебе требуется... Например, у тебя в буфере "123" и что должно получиться?

зы. посмотри эту тему http://www.nncron.ru/forums/viewtopic.p ... 1385807371 может на мыcли натолкнет...
roman78
 
Posts: 57
Joined: Sat, 06 Nov 2004, 20:52

Postby StasK » Tue, 09 Nov 2004, 20:22

roman78 wrote:сразу скажу что не смогу помочь, но все равно хотелось бы понять что тебе требуется... Например, у тебя в буфере "123" и что должно получиться?

зы. посмотри эту тему http://www.nncron.ru/forums/viewtopic.p ... 1385807371 может на мыcли натолкнет...


Добрый вечер!

ХОЧУ: в буфере - 123, запускаю задачу, она отработала и в буфере - сто двадцать три руб. 00 коп.
User avatar
StasK
 
Posts: 18
Joined: Fri, 27 Aug 2004, 21:48

Postby Игорь » Fri, 12 Nov 2004, 09:05

StasK wrote:ХОЧУ: в буфере - 123, запускаю задачу, она отработала и в буфере - сто двадцать три руб. 00 коп.

Есть вот такой компонент *.wsc http://dyakovkm.tripod.com/wsh/n2w.htm
Можно и к nnCron прикрутить при желании.
Игорь
 
Posts: 36
Joined: Tue, 17 Aug 2004, 02:25

Postby roman78 » Fri, 12 Nov 2004, 19:17

тут где то книжка была в счм по форту 1,5метра... обязательно почитай. Я только начал, времени не хватает... Но там все очень здорово описывается, респект автору и тем кто не поленился оформить\покласть.
roman78
 
Posts: 57
Joined: Sat, 06 Nov 2004, 20:52

Postby StasK » Mon, 15 Nov 2004, 18:13

Игорь wrote:Есть вот такой компонент *.wsc http://dyakovkm.tripod.com/wsh/n2w.htm
Можно и к nnCron прикрутить при желании.


Спасибо! Прикрутил, преобразовует!

Но вот незадача :( В этой задаче:
Code: Select all
#( num2word
NoActive
\ сумма прописью
SingleInstance
\ /[0-9]+\.[0-9][0-9]/
WatchHotKey: "+@l"
Action:
    <VBScript>
      Option Explicit
      Dim converter
      set converter=CreateObject("DkmS.Money.InWords.Intl")
      converter.language="ru"
      WScript.Echo converter.RubInWords("%CLIPBOARD%")
      Sub Show(string)
      WScript.Echo string & " => " & converter.convert(string)
      End Sub
    </SCRIPT>
BALLOON: "" "%CLIPBOARD%"
)#


Balloon выскакивает каждую минуту, есть в задаче NoActive или нет его все едино, что сделать ???

И еще вопрос: как сделать проверку буфера (содержиться там сумма или нет, я с регекспами совсем запутался :( ), нужно проверить точку или запятую перед копейками, или отсутствие копеек вообще. Подскажите, пожалуйста !!!
User avatar
StasK
 
Posts: 18
Joined: Fri, 27 Aug 2004, 21:48

Postby Игорь » Tue, 16 Nov 2004, 07:46

StasK wrote:Balloon выскакивает каждую минуту, есть в задаче NoActive или нет его все едино, что сделать ???

А зачем тебе вообще баллун в таком виде, он же будет показывать не результат конвертирования, а те цифры, что попали в клипбоард?

В общем шут его знает, у меня такой задачи нет, мне без надобности, просто на этот компонент наткнулся как-то... Но цель то какая, положить в клипбоард сумму прописью? Тогда на vbscript можно и получить текст из клипбоарда и положить в него же, это делается приблизительно так(утрированно,без обьявления переменных и обработки ошибок):
Code: Select all
set converter=CreateObject("DkmS.Money.InWords.Intl")
converter.language="ru"
a=converter.RubInWords(ReadClipboard)
ToClipboard(a)

Function ReadClipboard
Set oIE=WScript.CreateObject("InternetExplorer.Application")
 oIE.navigate "about:blank"
 oIE.visible = 0
Do While (oIE.Busy)
 WScript.Sleep 50
Loop
 ReadClipboard = _
 oIE.Document.parentWindow.clipboardData.getData ("text")
 oIE.quit
End Function

Function ToClipboard(mytext)
Set oIE = WScript.CreateObject("InternetExplorer.Application")
    oIE.navigate "about:blank"
    oIE.visible = 0
Do While (oIE.Busy)
 WScript.Sleep 50
Loop
   oIE.Document.parentWindow.clipboardData.setData "text", mytext
   oIE.Quit
End Function
То есть при этом подключенном *.wsc такой файл *.vbs отправит в буфер результат конвертирования

Можно по хоткей делать
START-APPW: wscript.exe этот_файл.vbs
и потом баллуун

А если к крону прикручивать, мм-м... наверно я бы делал что-нибудь вроде:
Code: Select all
#( num2word
: MYNUMBER S" /[0-9]+((\.)|(\,)?[0-9]{2})?/
WatchClipboard: *
Rule: RE-MATCH: %CLIPBOARD% %MYNUMBER%
Action:
160 KEY-PRESSED?
   IF
    RE-ALL: %CLIPBOARD% %MYNUMBER%
        QUERY: "Перевести число %$0% в рубли?"
        IF
         <VBScript>
         Dim converter
         set converter=CreateObject("DkmS.Money.InWords.Intl")
         converter.language="ru"
         a=converter.RubInWords("%$0%")
         b=InputBox("Результат конвертирования", "num2word", a)
         </SCRIPT>
        THEN
   ;RE-ALL
     ELSE
   THEN
)#

То есть выделял бы цифры, нажимал Shift и копировал их в клипбоард правой кнопкой мыши. А если Shift не нажат , то и не надо ничего конвертировать, в буфере обмена у меня к примеру постоянно какие-то цифры меняются, nnCron только мешать будет. InputBox имхо удобней, чем WScript.Echo, из него сразу скопировать можно. А если отладить задачу как следует, то потом и без QUERY и InputBox сразу можно в клипбоард отправлять и баллун для наглядности.

Чтобы KEY-PRESSED работало, у меня подключен такой плагин buttonstate.spf
Code: Select all
0 [IF]

[THEN]

WINAPI: GetKeyState USER32.DLL

: KEY-PRESSED? ( n -- ? ) GetKeyState 0x8000 AND? ;

Это в эхе nnCron как -то пробегало, может сейчас другие решения есть.
В общем сейчас восьмой час утра, я только проснулся, еще не все соображаю и ход мыслей приблизительно такой :))

P.S. Строчка : MYNUMBER S" /[0-9]+((\.)|(\,)?[0-9]{2})?/
Мужики, поправьте, а? Я в регекспах не силен(редко пользуюсь), как правильно узнать, что в буфере обмена цифра и возможно после цифры точка или запятая и опять две цифры?
Игорь
 
Posts: 36
Joined: Tue, 17 Aug 2004, 02:25

Postby StasK » Tue, 16 Nov 2004, 11:16

2Игорь

Спасибо !!! (Я тоже только начинаю пользоваться, и еще неочень хорошо разбираюсь в таких нюансах, ОСОБЕННО в регекспах :( )
User avatar
StasK
 
Posts: 18
Joined: Fri, 27 Aug 2004, 21:48

Postby VK » Tue, 16 Nov 2004, 11:22

Игорь wrote:P.S. Строчка : MYNUMBER S" /[0-9]+((\.)|(\,)?[0-9]{2})?/
Мужики, поправьте, а? Я в регекспах не силен(редко пользуюсь), как правильно узнать, что в буфере обмена цифра и возможно после цифры точка или запятая и опять две цифры?


Вроде, так работает:
Code: Select all
/^\d+(\.|,)?(\d\d)?$/
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby StasK » Tue, 16 Nov 2004, 11:31

VK (far_away) wrote:
Вроде, так работает:
Code: Select all
/^\d+(\.|,)?(\d\d)?$/


Спасибо, попробую :)

P.S. А можно расшифровочку, а то хочеться понять что, как и почему делается ?
User avatar
StasK
 
Posts: 18
Joined: Fri, 27 Aug 2004, 21:48


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 3 guests