PP Script: Сохранение выделенного текста в файл

Те, кто ей начинают пользоваться, уже не в силах остановиться! Она может все. Или почти все!

Сообщение delpher » Пт сен 10, 2004 4:31 am

Этот скрипт копирует выделенный в любом окне текст в файл. Причем имя файла формируется на основании текущей даты+время:

04-09-10-0826-04.txt
04-09-10-0838-48.txt
...

Для чего нужен? Очень просто - скажем, серфите вы по инету и наткнулись на интересный анекдот, совет или любой другой кусочек текста, который хотелось бы сохранить. Тогда вы выделяете этот кусочек мышкой, нажимаете hotkey и он падает в заранее определенную папку в виде текстовика.
Сохранение страницы из браузера зачастую бывает дольше и плюс сохраняется страница целиком, со всем, что надо и чего совсем не надо.
В файле в любом случае сохраняется заголовок окна, из которого был скопирован текст, а если копируете из браузера, то дополнительно сохраняется адрес текущей страницы.Как видно из скрипта, поддерживаются браузеры MyIE2 и Opera (проверено на ver7.53, но оперу надо еще дополнительно слегка настроить). Можете сами дописать поддержку любимого браузера. Причем, повторяю, влияет это только на сохранение адреса текущей страницы, сам выделенный текст и заголовок окна будут сохранены в любом случае

Код: выделить все
;Для правильной работы скрипта необходимо, чтобы в Opera на комбинацию Crtl+Alt+K было
;назначено копирование адреса активного фрейма
;И в PowerPro параметр "Escape character for string used in expressions"
;должен быть установлен в символ ' (апостроф)

;в какую папку складывать скопированное
local fPath = "c:\Мои документы\"

;имя файла, куда скопируется текст
local fName = fPath++formatdate ("yy-MM-dd", date)++"-"++formattime ("HHmm-ss", time)++".txt"

;сохранили первоначальное содержимое буфера
local myclip = clip.get

;очищаем буфер
clip.set ("")

local fText

;читаем адрес

;если мы в MyIE2, то перемещаемся в строку адреса
;и копируем адрес текущей страницы оттуда
*if (activewindow "=myie2") do
  *Keys {slow}{alt}d{alt}{ctrl}c{ctrl}{esc}
  fText = clip.get

*elseif (activewindow "=opera") do
 ;если мы в opera, то копируем адрес текущей страницы
 ;с помощью настроенного нами hotkey,
 ;причем в цикле на тот случай, если копирование сбойнет (случается иногда)
  *for (fText=""; fText=="";)
     fText=""
     *Keys {slow}{ctrl}{alt}k{ctrl}{alt}
     fText = clip.get
  *endfor

 ;перемещаемся в строку адреса
 ;и копируем адрес текущей страницы оттуда (устарело)
 ;*Keys {slow}{f8}{ctrl}c{ctrl}{esc}
*endif

;читаем выделенный текст в цикле на тот случай, если копирование сбойнет (случается иногда)

local ffText
*for (ffText=""; ffText=="";)
  ffText=""
  *Clip Copy
  ffText = clip.get
*endfor

;готовим заголовок
fHead = "'r'n====================================================================='r'n"++&(caption)++"'r'n"
*if (fText ne myclip) and (fText ne "") do
  fHead = fHead++&(fText)++"'r'n"
*endif
fHead = fHead++"---------------------------------------------------------------------'r'n"

;копируем в clipboard готовый заголовок и скопированный текст
clip.set(fHead++clip.get)

;сохраняем содержимое буфера в файле (знаю, что можно
;и по другому, но экспериментировать в лом
*Clip ToFile "&(fName)"

;с гарантией восстановили первоначальное содержимое буфера
*for (clip.set(myclip); myclip!=clip.get;)
  clip.set(myclip)
*endfor

;Это для того, чтобы в messageBox вывести линк, откуда сохранили данные, причем с отступами.
;Caption окна не выводим - там часто случаются недопустимые с точки зрения PPro
;символы и скрипт вываливается с ошибкой
*if (fText ne "") do
  fText = "&(fText)'r'n'r'n"
*endif

fText = "&(fText)Копирование в файл выполнено"
MessageBox ("ok information", "&(fText)", "CopyToFile")
Последний раз редактировалось delpher Пт сен 10, 2004 4:37 am, всего редактировалось 1 раз.
delpher
Прапор
 
Сообщений: 65
Зарегистрирован: Вт дек 10, 2002 3:23 am
Откуда: Кемерово
Пункты репутации: 0

Сообщение Gluek » Пт сен 10, 2004 7:06 am

<!--QuoteBegin-delpher+Sep 10 2004, 08:31--><div class='quotetop'>QUOTE(delpher @ Sep 10 2004, 08:31)</div><div class='quotemain'><!--QuoteEBegin-->Как видно из скрипта, поддерживаются браузеры MyIE2
<!--QuoteEnd--></div><!--QuoteEEnd-->
В MyIE2 для сохранения участка текста достаточно этот текст выделить, и перетащить куда-нить на открытой странице с зажатым CTRL
<!--fonto:Tahoma--><span style="font-family:Tahoma"><!--/fonto--><!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->Для контактов со мной пользуйтесь адресом mrgluek@gmail.com (e-mail & jabber).<!--sizec--></span><!--/sizec-->
Полезное в <a href="http://gluek.info/" target="_blank">моем блоге</a>: бесплатный <a href="http://gluek.info/free-files-hosting/" target="_blank">хостинг для файлов</a> и <a href="http://gluek.info/free-images-hosting/" target="_blank">для картинок</a>, бесплатные <a href="http://gluek.info/free-mp3-download/" target="_blank">сайты с музыкой</a>.<!--fontc--></span><!--/fontc-->
Gluek
Генерал-лейтенант
 
Сообщений: 3107
Зарегистрирован: Пн янв 06, 2003 6:24 am
Откуда: Россия/Москва
Пункты репутации: 0

Сообщение delpher » Пт сен 10, 2004 11:32 am

<!--QuoteBegin-Gluek+Sep 10 2004, 14:06--><div class='quotetop'>QUOTE(Gluek @ Sep 10 2004, 14:06)</div><div class='quotemain'><!--QuoteEBegin-->В MyIE2 для сохранения участка текста достаточно этот текст выделить, и перетащить куда-нить на открытой странице с зажатым CTRL
[right][snapback]140848[/snapback][/right]
<!--QuoteEnd--></div><!--QuoteEEnd-->
А тогда не сохранится адрес страницы, из которой был скопирован текст. Да и лишние движения мышой. К тому же этот способ работает только с MyIE, а скрипт со всеми прочими программами и браузерами.
Хотя никого не заставляем, пистолет не наставляем <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo-->
delpher
Прапор
 
Сообщений: 65
Зарегистрирован: Вт дек 10, 2002 3:23 am
Откуда: Кемерово
Пункты репутации: 0

Сообщение delpher » Пт сен 10, 2004 6:51 pm

Так, поскольку с MyIE2 не протестировал толком, то с ним не работало <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo-->
Слегка переработал скрипт, теперь во всяком случае у меня с MyIE2 не глючит больше. Доработал, чтобы скрипт захватывал адрес страницы и при копировании текста из ослика MSIE.

Дубль 2, жду матерных отзывов <!--emo&:)-->[img]style_emoticons/<#EMO_DIR#>/smile.gif[/img]<!--endemo-->
Код: выделить все
;Для правильной работы скрипта необходимо, чтобы в Opera на комбинацию Crtl+Alt+K было
;назначено копирование адреса активного фрейма
;И в PowerPro параметр "Escape character for string used in expressions"
;должен быть установлен в символ ' (апостроф)

;в какую папку складывать скопированное
local fPath = "c:\Archive\Downloads\Texts\"

;имя файла, куда скопируется текст
local fName = fPath++formatdate ("yy-MM-dd", date)++"-"++formattime ("HHmm-ss", time)++".txt"

;сохранили первоначальное содержимое буфера
local myclip = clip.get

;очищаем буфер
clip.ClearClipboard

;читаем выделенный текст в цикле на тот случай, если копирование сбойнет (случается иногда)
;ограничение по числу повторов - чтоб не зацикливалось
local ffText
local aaa
ffText=""
*for (aaa=1; ((aaa<10) && (ffText==""));)
 ffText=""
 *Keys {slow}{ctrl}{ins}{ctrl}
 ffText = clip.get
 aaa=aaa+1
*endfor

local fText

;читаем адрес
;если мы в MyIE2, то перемещаемся в строку адреса
;и копируем адрес текущей страницы оттуда
*if (activewindow "=myie") do
 *Keys {slow}{alt}d{alt}{ctrl}c{ctrl}{ctrl}c{ctrl}
 fText = clip.get
*elseif (activewindow "=opera") do
;если мы в opera, то копируем адрес текущей страницы
;с помощью настроенного нами hotkey,
;причем в цикле на тот случай, если копирование сбойнет (случается иногда)
 fText=""
 *for (aaa=1; ((aaa<10) && (fText==""));)
    fText=""
    *Keys {slow}{ctrl}{alt}k{ctrl}{alt}
    fText = clip.get
    aaa=aaa+1
 *endfor

;перемещаемся в строку адреса
;и копируем адрес текущей страницы оттуда (устарело)
;*Keys {slow}{f8}{ctrl}c{ctrl}{esc}
*elseif (activewindow "=IEXPLORE") do
 fText = browserURL
*endif

;готовим заголовок
fHead = "'r'n====================================================================='r'n"++&(caption)++"'r'n"
*if (fText ne myclip) and (fText ne "") do
 fHead = fHead++&(fText)++"'r'n"
*endif
fHead = fHead++"---------------------------------------------------------------------'r'n"

;копируем в clipboard готовый заголовок и скопированный текст
clip.set(fHead++ffText)

;сохраняем содержимое буфера в файле (знаю, что можно
;и по другому, но экспериментировать в лом
*Clip ToFile "&(fName)"

;с гарантией восстановили первоначальное содержимое буфера
clip.set(myclip)
*for (aaa=1; ((aaa<10) && (myclip!=clip.get));)
 clip.set(myclip)
*endfor

;Это для того, чтобы в messageBox вывести линк, откуда сохранили данные, причем с отступами.
;Caption окна не выводим - там часто случаются недопустимые с точки зрения PPro
;символы и скрипт вываливается с ошибкой
*if (fText ne "") do
 fText = "&(fText)'r'n'r'n"
*endif

fText = "&(fText)Копирование в файл выполнено"
MessageBox ("ok information", "&(fText)", "CopyToFile")
delpher
Прапор
 
Сообщений: 65
Зарегистрирован: Вт дек 10, 2002 3:23 am
Откуда: Кемерово
Пункты репутации: 0


Вернуться в Windows PowerPro

Кто сейчас на форуме

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

cron