Войти

Показать полную графическую версию : [решено] Буфер обмена + txt


zbruy
26-11-2009, 18:29
Собственно. Есть производственная необходимость имея файл с текстом, по нажатию горячей клавишы копировать каждый раз, по очереди, новую строку в буфер, примерно так:
Открываем файл.txt
Копируем в буфер строку
паузим скрипт
Повтор для следующей строки
Остановило то, что у меня не вышло (если такое вообще возможно) преобразовать переменную и скопировать ее в буфер. В итоге пришлось пользоватся такой схемой:

Opt("TrayIconDebug",1)
HotKeySet("{Esc}" , "MyExit")
Global $Paused
HotKeySet("{SPACE}", "TogglePause")

$M = 1
ClipPut ( 'Текст 1' )
ToolTip('$M = ' & $M,0,0)
Send("{SPACE}")
$M += 1

ClipPut ( 'Текст 2' )
ToolTip('$M = ' & $M,0,0)
Send("{SPACE}")
$M += 1
...
Func TogglePause()
$bak = ClipGet()

$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip($M &"й имейл : " & $bak,0,0)
WEnd
ToolTip("")
EndFunc
Func MyExit()
MsgBox(0, "Сообщение системы", "скрипт завершен")
Exit
EndFunc

Но приходится каждую строку вбивать в скрипт вручную, что очень неудобно, при количестве строк 50-100. А таких скриптов нужно несколько.

Проще говоря, можно ли использовать буфер с текстом из файла и буфера, а если можно то как?

Creat0R
27-11-2009, 00:31
Возможно так:

Opt (http://www.autoitscript.com/autoit3/docs/functions/Opt.htm)("TrayIconDebug",1)

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $iCount = 1
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $sFile = @DesktopDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@DesktopDir) & "\Lines.txt"

HotKeySet (http://www.autoitscript.com/autoit3/docs/functions/HotKeySet.htm)("{ESC}", "_Exit")
HotKeySet (http://www.autoitscript.com/autoit3/docs/functions/HotKeySet.htm)("{SPACE}", "_CopyToClipBoard_Proc")

_CopyToClipBoard_Proc()

While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
Sleep (http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm)(100)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _CopyToClipBoard_Proc()
$sLine = FileReadLine (http://www.autoitscript.com/autoit3/docs/functions/FileReadLine.htm)($sFile, $iCount)

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @error (http://www.autoitscript.com/autoit3/docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(16, "Сообщение системы - Ошибка!", "Ошибка при чтений файла (возможно достигнут конец файла).")
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)

ClipPut (http://www.autoitscript.com/autoit3/docs/functions/ClipPut.htm)($sLine)
ToolTip (http://www.autoitscript.com/autoit3/docs/functions/ToolTip.htm)('$iCount = ' & $iCount, 0, 0)

$iCount += 1
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _Exit()
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(48, "Сообщение системы", "Скрипт завершен")
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

?
:)

zbruy
28-11-2009, 00:45
Creat0R, Все гениальное - просто. Шикарно, спасибо, это как раз то, что я и пытался сделать=)




© OSzone.net 2001-2012