1 (изменено: Misamoto, 2014-04-28 16:03:46)

Тема: AHK: Построчное чтение в...

Приветствую.
Есть необходимость передавать в программу (База, Итилиум, на 1С Предприятие 8.2) разнообразные списки значений.

В данный момент использую для добавления одного значения:

Click Координаты кнопки добавления
send Передаваемый текст
send {Enter}

Для постоянных списков просто подготовил повторение этих строчек в нужном количестве.

Теперь хотелось бы оптимизировать и сделать возможность добавления значений из заранее неизвестного списка.
Просьба подсказать способ.

Сам вижу это как Loop, чтение построчно текстового файла в переменную и Click, send значение переменной, send {Enter}, повторять пока не кончится файл, но способ реализации, поизучав разные Loop не придумал.

2 (изменено: Misamoto, 2014-04-28 16:03:55)

Re: AHK: Построчное чтение в...

Прошу прощения, я глупый, да?

Loop, read, C:\Database Export.txt
{
    Loop, parse, A_LoopReadLine, %A_Tab%
    {
       %A_LoopField% - и вокруг этой переменной как раз делать интересные мне команды...
    }
}

3

Re: AHK: Построчное чтение в...

Misamoto пишет:

Прошу прощения, я глупый, да?

Согласно п. 4.7 правил форума не следует называть себя глупым.

Выложите образец исходного списка.

4 (изменено: Ядрён, 2014-04-28 18:59:09)

Re: AHK: Построчное чтение в...

Здравствуйте если я не ошибаюсь то решение такое.


#SingleInstance force
#NoEnv
#Persistent
#IfWinActive,   ; ВПИШИТЕ ЗАГОЛОВОК ОКНА ПРИМЕР  #IfWinActive, notepad
SetTitleMatchMode, 2

Gui, Color, B0C4DE
gui, font, cBlue s10
Gui, Add, Text,,<Х> Координаты кнопки добавления
Gui, Add, ComboBox, vMouseClick1 w100
Gui, Add, Text,,<Y> Координаты кнопки добавления
Gui, Add, ComboBox, vMouseClick w100
Gui, Add, Text,, Передаваемый текст
Gui, Add, ComboBox, vsend w100
Gui, Add, Text,,Нажмите Применить
Gui, Add, Button, w100 gОК, Применить
gui, font, cRed s10
Gui, Add, Text,,Нажмите F11 для определения координат
Gui, Show 
Return

~F11::  ; нажмите F11 для определения координат курсора мыши  
MouseGetPos, xpos, ypos 
Msgbox, Текущие координаты курсора: X%xpos% Y%ypos%. 
Return

~F12::Suspend, toggle  ;пауза
Return

~F9::  ;кнопка включения
MouseClick, left, %x%, %y%
send, %text%
Sleep,100
send, {vkD}

Return

ComboBox:
Return
ОК:
Gui Submit, NoHide
text = %send%
x = %MouseClick1%
y = %MouseClick%
WinMinimize 
Return
GuiClose:
ExitApp
OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

5 (изменено: Misamoto, 2014-04-28 21:36:53)

Re: AHK: Построчное чтение в...

ypppu пишет:
Misamoto пишет:

Прошу прощения, я глупый, да?

Согласно п. 4.7 правил форума не следует называть себя глупым.

Выложите образец исходного списка.

В принципе стоявшую в конкретный момент времени задачу я решил, но раз есть желающие помочь мне с автоматизацией работы...

Список может быть например вот таким

2.Доставка МТО 108ч
2.Доставка МТО 120ч
2.Доставка МТО 132ч
2.Доставка МТО 144ч
2.Доставка МТО 156ч
2.Доставка МТО 168ч
2.Доставка МТО 169ч
2.Доставка МТО 180ч
2.Доставка МТО 192ч
2.Доставка МТО 204ч
2.Доставка МТО 216ч
2.Доставка МТО 228ч
2.Доставка МТО 240ч
2.Доставка МТО 264ч
2.Доставка МТО 288ч
2.Доставка МТО 312ч
2.Доставка МТО 336ч
2.Доставка МТО 337ч
2.Доставка МТО 360ч
2.Доставка МТО 384ч
2.Доставка МТО 408ч
2.Доставка МТО 432ч
2.Доставка МТО 456ч
2.Доставка МТО 480ч
2.Доставка МТО 48ч
2.Доставка МТО 528ч
2.Доставка МТО 60ч
2.Доставка МТО 72ч
2.Доставка МТО 84ч
2.Доставка МТО 96ч

А может таким: Не работают телекоммуникации по базовым сервисам (решает 2-я линия)

Проблемы с телекоммуникациями по услуге "Возврат товара" (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге "ОСС" (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге Гарантия и сервис (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге ФС (решает Телеком 2 линия)
Проблемы с телекоммуникациями при открытии/закрытии операционного дня, смены (решает Телеком 2 линия)
Проблемы с телекоммуникациями при печати и отправке документов (решает Телеком 2 линия)
Проблемы с телекоммуникациями при поддержке дополнительных услуг (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге Лояльность (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге "Сотрудники" (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге "Прием и возврат платежей через кассу" (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге "Продажа товара" (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге Flora (решает Телеком 2 линия)
Проблемы с телекоммуникациями по услуге "Учет ТМЦ" (решает Телеком 2 линия)

Нехорошая желтая программа к сожалению не даёт мне развернуться, потому что, например, иногда попадаются записи в базе с одинаковым наименованием, но разным кодом и какую ты имел ввиду просто так не выбрать (скрин в приложении. Код не является частью вписываемого текста)
А еще иногда она тормозит, поэтому возникают проблемы с автоматизацией между разными "окнами" программы - надо что-то сделать после того как она запишет все значения в базу, а она зависнет секунды на 3 вместо обычных, прописанных в скрипте, одной.

Ну, то есть возможны наверное сложные варианты скриптов, но не вижу смысла так заморачиваться. Основная задача - избавить себя от глупой рутины. Список выше к примеру приходится добавлять регулярно.

6 (изменено: Ядрён, 2014-04-28 21:55:27)

Re: AHK: Построчное чтение в...

Вот так подойдёт? Добавляйте пункты сами, надеюсь всё стало понятно , как их добавлять.


#SingleInstance force
#NoEnv
#Persistent
Gui, Color, B0C4DE
gui, font, cBlue s10
Gui, Add, Text,,<Х> Координаты кнопки добавления
Gui, Add, ComboBox, vMouseClick1 w50
Gui, Add, Text,,<Y> Координаты кнопки добавления
Gui, Add, ComboBox, vMouseClick w50
Gui, Add, Text,, Передаваемый текст
Gui, Add, ComboBox, vsend w500,
|2.Доставка МТО 108ч
|2.Доставка МТО 120ч
|2.Доставка МТО 132ч
|2.Доставка МТО 144ч
|2.Доставка МТО 156ч
|2.Доставка МТО 168ч
|2.Доставка МТО 169ч
|2.Доставка МТО 180ч
|2.Доставка МТО 192ч
|2.Доставка МТО 204ч
|2.Доставка МТО 216ч
|2.Доставка МТО 228ч
|2.Доставка МТО 240ч
|2.Доставка МТО 264ч
|2.Доставка МТО 288ч
|2.Доставка МТО 312ч
|2.Доставка МТО 336ч
|2.Доставка МТО 337ч
|2.Доставка МТО 360ч
|2.Доставка МТО 384ч
|2.Доставка МТО 408ч
|2.Доставка МТО 432ч
|2.Доставка МТО 456ч
|2.Доставка МТО 480ч
|2.Доставка МТО 48ч
|2.Доставка МТО 528ч
|2.Доставка МТО 60ч
|2.Доставка МТО 72ч
|2.Доставка МТО 84ч
|2.Доставка МТО 96ч
|Проблемы с телекоммуникациями по услуге "Возврат товара" (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге "ОСС" (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге Гарантия и сервис (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге ФС (решает Телеком 2 линия)
|Проблемы с телекоммуникациями при открытии/закрытии операционного дня, смены (решает Телеком 2 линия)
|Проблемы с телекоммуникациями при печати и отправке документов (решает Телеком 2 линия)
|Проблемы с телекоммуникациями при поддержке дополнительных услуг (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге Лояльность (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге "Сотрудники" (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге "Прием и возврат платежей через кассу" (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге "Продажа товара" (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге Flora (решает Телеком 2 линия)
|Проблемы с телекоммуникациями по услуге "Учет ТМЦ" (решает Телеком 2 линия)
Gui, Add, Text,,Нажмите Применить
Gui, Add, Button, w100 gОК, Применить
gui, font, cRed s10
Gui, Add, Text,,Нажмите F11 для определения координат
Gui, Show 
Return

~F11::  ; нажмите F11 для определения координат курсора мыши  
MouseGetPos, xpos, ypos 
Msgbox, Текущие координаты курсора: X%xpos% Y%ypos%. 
Return

~F12::Suspend, toggle  ;пауза
Return

~F9::  ;кнопка включения
MouseClick, left, %x%, %y%
send, %text%
Sleep,100
send, {vkD}

Return

ComboBox:
Return
ОК:
Gui Submit, NoHide
text = %send%
x = %MouseClick1%
y = %MouseClick%
WinMinimize 
Return
GuiClose:
ExitApp
OS: Win11x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

7 (изменено: Misamoto, 2014-04-28 22:13:49)

Re: AHK: Построчное чтение в...

Ядрён пишет:

Вот так подойдёт? Добавляйте пункты сами, надеюсь всё стало понятно , как их добавлять.

Я решил вопрос попроще...

CoordMode, ToolTip, Screen
Thread, interrupt, 0

Pause::Pause
^!p::Reload

;Забить Доставку МТО

^!m::
Loop, read, M:\AHKScripts\MTO.txt
{
    Loop, parse, A_LoopReadLine, %A_Tab%
    {    Click 65,230
    send %A_LoopField%
    send {Enter}
        }
}
return

Без тред иинтеррапта не работала пауза, без координации по всему экрану глючит мышка.
Графического интерфейса нет, но он и не нужен, в общем-то.