Здравствуйте, гость ( Вход | Регистрация )

5 страниц V « < 3 4 5  
Ответить в эту темуОткрыть новую тему
> Проверка скорости обработки, --данных--
Levo222
сообщение 11.6.2020, 23:31
Сообщение #81


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 3:27) *

а потом её в цикле сравнивать.

Не сравнивать а проверять
Я хочу вынести все переменные в одну таблицу и менять их значения только в одном месте, а в цикле будет множество их сочетаний, что сократит количество строк кода раза в 2.

А всё понял, сама по себе функция может только проверить, а присвоение нет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 12.6.2020, 0:03
Сообщение #82


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Цитата(Levo222 @ 11.6.2020, 23:31) *

Не сравнивать а проверять



Интересное мнение


Цитата(Levo222 @ 11.6.2020, 23:31) *

А всё понял, сама по себе функция может только проверить, а присвоение нет.



Никто не мешает присваивать в G() и проверять там же
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 0:13
Сообщение #83


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Cockney @ 12.6.2020, 4:03) *

Никто не мешает присваивать в G() и проверять там же

Как написать функцию функции чтобы можно было писать так: ????????????????
Код

local Peremennie = function()(A B C D E)
  for i = 1, Tab do
  end
end
function PeremenniePeremennie(Peremennie, (x, y)) return(color (x, y)) end
R(100, 200) --пояснения
A(200, 300) --пояснения
B(232, 234) --пояснения
C(123, 345) --пояснения

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 12.6.2020, 14:29
Сообщение #84


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



В чем смысл ? зачем ? какие переменные ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 15:44
Сообщение #85


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Чтобы соотнести их с точками запроса colora. Своего рода каталогизация. Ну в целом меньше писанины будет.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.6.2020, 15:49
Сообщение #86


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Если нормально написать что хотите сделать, то больше шансов получить ответ.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 12.6.2020, 15:52
Сообщение #87


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(cirus @ 12.6.2020, 15:49) *
Если нормально написать что хотите сделать, то больше шансов получить ответ.
Видимо, так не интересно))

Я, наконец-то понял чего он хочет. Он хочет избавиться от hard code (кстати, весьма правильное решение, если это оно).


Levo222, вот, походу то, что ты хотел:
До:
Код
--lua
log"clear"log"mode compact"
hndl = findwindow("Блокнот")[1][1]
for i = 1, 100 do
    if color (229, 233, hndl) == 1234 then
        a=177
    end
    if color (767, 370, hndl) == 5678 then
        a=400
    end
end

После:
Код
--lua
do--Script_Parameters
    x1, y1  = 229, 233
    x2, y2  = 767, 370
    window  = "Блокнот"
    color1  = 1234
    color2  = 5678
    action1 = 177
    action2 = 400
end
--
log"clear"log"mode compact"
hndl = findwindow(window)[1][1]
for i = 1, 100 do
    if color(x1, y1, hndl) == color1 then
        a=action1
    end
    if color(x2, y2, hndl) == color2 then
        a=action2
    end
end


Сообщение отредактировал Fors1k - 12.6.2020, 16:10


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 16:05
Сообщение #88


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 19:49) *

Если нормально написать что хотите сделать, то больше шансов получить ответ.

Помоему больше чем вот это:
Цитата
Чтобы соотнести их с точками запроса colora. Своего рода каталогизация. Ну в целом меньше писанины будет.

У меня разжевать не получится.
Ну ладно приведу пример наглядно.
Есть такой вариант: (который на мой взгляд более тяжело воспринимается если там десяток функций для каждой переменной по одному, а у меня их 40)
Код

function A() return(color (100, 100)) end --одно
function B() return(color (369, 260)) end --третье
function C() return(color (435, 56)) end -- десятое
function D() return(color (87, 260)) end --двадцатое
function E() return(color (33, 84)) end
While 1 do
  if A ~= 0 and B == 0 then 1
  elseif
  A == 0 or C ~= 0 then 4
  elseif
  D == 0 and C ~= 0 then 8
  elseif
  E == 0 or B == 0 then 9
  elseif
end
end
end
end
end


А есть такой (с 2-мя функциями, с подставкой переменной к одной из них)
Код
local TAB = {A, B, C, D , E}
function Functia(TAB)
for i, #TAB do
end
function P(Functia) return(color (x, y)) end
A(P) = (100, 100) --одно
B(P) = (200, 200) --третье
C(P) = (232, 260) --десятое
D(P) = (343, 20) --двадцатое
E(P) = (354, 342)
While 1 do
  if A ~= 0 and B == 0 then 1
  elseif
  A == 0 or C ~= 0 then 4
  elseif
  D == 0 and C ~= 0 then 8
  elseif
  E == 0 or B == 0 then 9
  elseif
end
end
end
end
end
end


Что лучше?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 16:19
Сообщение #89


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(Fors1k @ 12.6.2020, 19:52) *

Я, наконец-то понял чего он хочет.
После:
Код
--lua

    color1  = 1234
    


1234 - это что? Hex цвета? Ну вцелом наверное оно, хотя я еще не задумывался о том, чтобы табличить конкретные цвета, у меня их не так много. Я сделал упор на наличии вообще какого-либо цвета впринципе в указанной точке, и обхожусь разницей от чёрного, как по мне кажется быстрее. Но это моё дилетантское мнение.

Да кстати: Вот этот код
Цитата(Fors1k @ 12.6.2020, 19:52) *

Код
hndl = findwindow(window)[1][1]
for i = 1, 100 do
    if color(x1, y1, hndl) == color1 then
        a=action1
    end
    if color(x2, y2, hndl) == color2 then
        a=action2
    end
end


Будет на 30% медленнее из-за findwindow
Можно его сразу на помойку выкинуть
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.6.2020, 16:25
Сообщение #90


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Будет на 30% медленнее из-за findwindow

Нет конечно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 16:27
Сообщение #91


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 20:25) *

Нет конечно.

Ну findwindow же стандартная функция пилота? Каждая из них на 30% увеличивает время обработки - Вчера же сидел замерял весь вечер. Один колор замедляет еще и findwindow
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.6.2020, 16:30
Сообщение #92


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Ну findwindow же стандартная функция пилота?

Она вызывается 1 раз вначале скрипта и всё.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 16:45
Сообщение #93


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 20:30) *

Она вызывается 1 раз вначале скрипта и всё.

Это не функционально из-за вписывания каждый раз нужного Id окна, щас бы каждый раз при запуске срипта его handle искать
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.6.2020, 17:22
Сообщение #94


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
вписывания каждый раз нужного Id окна

Куда и что вписывать? Функция findwindow для того и сделана, чтобы можно было не заморачиваться с привязкой Ctrl+A или вписывания в скрипт хендла окна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 18:03
Сообщение #95


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 21:22) *

Куда и что вписывать? Функция findwindow для того и сделана, чтобы можно было не заморачиваться с привязкой Ctrl+A или вписывания в скрипт хендла окна.

Нет, это так не работает. По крайней мере у меня - чем больше строк, тем хуже код. И в конечном счёте приходится его резать там, где это вовсе необязательно и опять по новой перерабатывать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.6.2020, 18:09
Сообщение #96


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
чем больше строк, тем хуже код.

Что значит хуже?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.6.2020, 18:11
Сообщение #97


*****

Journeyman
Сообщений: 399
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.689



Цитата(cirus @ 12.6.2020, 22:09) *

Что значит хуже?

Это значит что там больше костылей) Всё я уже не могу думать на эту тему, мне нужен простой код вот и всё))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

5 страниц V « < 3 4 5
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 20:08
Designed by Nickostyle