View previous topic :: View next topic |
Author |
Message |
prog_san
Joined: 29 Sep 2007 Posts: 282 Location: Пенза
|
(Separately) Posted: Mon Jan 14, 2019 00:30 Post subject: Копирование содержимого выделенных файлов в буфер обмена |
|
|
Здравствуйте.
Возникла задача: скопировать содержимое выделенных файлов в буфер обмена. Желательно перемежать полученный буфер строками с именами самих файлов. Хочется выделить файлы, нажать кнопку и вставить содержимое буфера обмена в Word документ.
Пример практического применения: формирование листинга исходных файлов проекта.
Поиск по форуму ничего конкретнее перенаправления в сlip не дал. Может быть кто-то уже решал подобные задачи? _________________ Errare humanum est |
|
Back to top |
|
|
imig73
Joined: 18 Jun 2013 Posts: 285 Location: г. Иркутск
|
(Separately) Posted: Mon Jan 14, 2019 01:50 Post subject: |
|
|
prog_san
Создайте кнопки с командами:
cm_CopyNamesToClip - копировать имена в буфер и cm_CopyFullNamesToClip - копировать в буфер имена с путями. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 14, 2019 02:09 Post subject: |
|
|
prog_san
Есть скрипты склеивания и кнопка.
imig73
Слово "содержимое" ни о чём не говорит?
И в новички prog_san записывать определённо уже довольно поздно. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
imig73
Joined: 18 Jun 2013 Posts: 285 Location: г. Иркутск
|
(Separately) Posted: Mon Jan 14, 2019 03:29 Post subject: |
|
|
Flasher
Да ладно вам, "содержимое" видел но не догнал. Мне тоже это надо
Со Старым новым годом! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Jan 14, 2019 04:16 Post subject: |
|
|
imig73 wrote: | Мне тоже это надо | Что "это"? Текст группы файлов в буфер? Зачем вам?
С НГ по Цезарю! _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
prog_san
Joined: 29 Sep 2007 Posts: 282 Location: Пенза
|
(Separately) Posted: Fri Jan 18, 2019 23:15 Post subject: |
|
|
Flasher wrote: | Есть скрипты склеивания и кнопка. |
Спасибо! _________________ Errare humanum est |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jan 19, 2019 08:38 Post subject: |
|
|
prog_san
Если очень надо одним скриптом, то на AutoHotKey (правда, без поддержки OEM и UTF-7/8 без ВОМ):
Code: | ;:::::::::::::::::::::::: AHK ::::::::::::::::::::::::
; Отправить содержимое выбранных файлов в буфер обмена
; Параметры: %WL <разделитель>
; \n — перевод строки; \f — имя файла
; Примеры: %WL \n\f\n | %WL "\n\n===== \f =====\n\n"
;:::::::::::::::::::::::::::::::::::::::::::::::::::::
#NoEnv
#NoTrayIcon
ListLines, Off
SetBatchLines,-1
If !%0%
ExitApp
If 0 != 2
{ MsgBox, 4144, Текст файлов в буфер обмена, Укажите 2 параметра!, 1.5
ExitApp
}
Delim = %2%
StringReplace Delim, Delim, \n, `r`n, All
Loop, Read, %1%
{ FileRead, Text, % A_LoopReadLine
If Not ErrorLevel
All .= StrReplace(Delim, "\f", RegExReplace(A_LoopReadLine, ".+\\")) . Text
}
If All !=
{ Clipboard =
Clipboard = %All%
} |
Либо на AutoIt (без поддержки OEM и UTF-7):
Code: | ;:::::::::::::::::::::::: AU3 ::::::::::::::::::::::::
; Отправить содержимое выбранных файлов в буфер обмена
; Параметры: %WL <разделитель>
; \n — перевод строки; \f — имя файла
; Примеры: %WL \n\f\n | %WL "\n\n===== \f =====\n\n"
;:::::::::::::::::::::::::::::::::::::::::::::::::::::
If $CmdLine[0] = 0 Then Exit
If $CmdLine[0] <> 2 Then
MsgBox(4144, " Текст файлов в буфер обмена", "Укажите 2 параметра!")
Exit
EndIf
Global $All, $oList = FileOpen($CmdLine[1]), $Delim = StringReplace($CmdLine[2], '\n', @CRLF)
While 1
$sLine = FileReadLine($oList)
If @error Then ExitLoop
$Text = FileRead($sLine)
If Not @error Then $All &= StringReplace($Delim, '\f', StringRegExpReplace($sLine, '.+\\', '')) & $Text
WEnd
If $All <> "" Then ClipPut(StringRegExpReplace($All, '^\R+', '')) |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
|