Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Буфер обмена + txt (http://forum.oszone.net/showthread.php?t=158328)

zbruy 26-11-2009 18:29 1280600

Буфер обмена + txt
 
Собственно. Есть производственная необходимость имея файл с текстом, по нажатию горячей клавишы копировать каждый раз, по очереди, новую строку в буфер, примерно так:
Код:

Открываем файл.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 1280878

Возможно так:

Код:

Opt("TrayIconDebug",1)

Global $iCount = 1
Global $sFile = @DesktopDir & "\Lines.txt"

HotKeySet("{ESC}", "_Exit")
HotKeySet("{SPACE}", "_CopyToClipBoard_Proc")

_CopyToClipBoard_Proc()

While 1
    Sleep(100)
WEnd

Func _CopyToClipBoard_Proc()
    $sLine = FileReadLine($sFile, $iCount)

    If @error Then
        MsgBox(16, "Сообщение системы - Ошибка!", "Ошибка при чтений файла (возможно достигнут конец файла).")
        Exit
    EndIf

    ClipPut($sLine)
    ToolTip('$iCount = ' & $iCount, 0, 0)

    $iCount += 1
EndFunc

Func _Exit()
    Exit MsgBox(48, "Сообщение системы", "Скрипт завершен")
EndFunc

?
:)

zbruy 28-11-2009 00:45 1281741

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


Время: 17:50.

Время: 17:50.
© OSzone.net 2001-