Author Topic: Математические вычисления в буфере  (Read 1246 times)

0 Members and 1 Guest are viewing this topic.

Parz

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Подскажите пожалуйста, может ли данная программа проводить математические вычисления в буфере к примеру:

Code: [Select]
WAIT(1)
DBLCLICK(391,821)//выделяем число
WAITMS(100)

KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS(100)
//число в буфере всегда с точкой а если оно боль 1 тис то ещё и запятая каждые три целых имеет такой вид: 83,745.70
//здесь вычисляем 1.98740+0,3%=1.9933622 или хотя бы 1.98740/300+1.98740=1.994024666666667

LCLICK(880, 410)//окно ввода решения
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(50)
Хотелось бы оптимизировать код, так как там завязка с блокнотом для замены точки на запятую, а потом калькулятор это считает.
Весь код забирает примерно 20 сек дальше оптимизировать некуда потому что будет не точное выполнение, а нужно не больше 5 сек.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Математические вычисления в буфере
« Reply #1 on: November 02, 2021, 10:42:43 AM »
Буфер это буфер! В него можно записать или из него прочитать. Никакие вычисления в буфере невозможны и ни одна программа этого не может сделать.

Данные нужно из буфера достать, посчитать и обратно запихнуть.
Code: (clickermann) [Select]
WAIT(1)
DBLCLICK(391,821) //выделяем число
WAITMS(100)

KEYDOWN(#CTRL)
WAITMS(30)
KEYPRESS(#C)
WAITMS(30)
KEYUP(#CTRL)
WAITMS(100)

$num = STRFILTER(FROMCLIP(), ",", 0)
$result = $num + $num / 100 * 0.3

print("Результат: ", $result)

LCLICK(880, 410) //окно ввода решения
WAITMS(100)

TOCLIP($result)
WAITMS(150)

KEYDOWN(#CTRL)
WAITMS(30)
KEYPRESS(#V)
WAITMS(30)
KEYUP(#CTRL)
WAITMS(100)

HALT


Хотелось бы оптимизировать код, так как там завязка с блокнотом для замены точки на запятую, а потом калькулятор это считает.
Весь код забирает примерно 20 сек дальше оптимизировать некуда потому что будет не точное выполнение, а нужно не больше 5 сек.
У тебя пока много не оптимальных решений, поэтому кажется что твою задачу можно сделать и за 5 сек. и, скорее всего, меньшее время.

//здесь вычисляем 1.98740+0,3%=1.9933622 или хотя бы 1.98740/300+1.98740=1.994024666666667
Вот такие вещи мне совсем непонятны. Что значит "хотя бы"? Хотя бы получить что нибудь? Примеры ведь совсем разные, как один может заменить другой?
В первом, к числу прибавляем 0.3%, а во втором - непонятные вычисления.
« Last Edit: November 02, 2021, 10:56:24 AM by Vint »