CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Здесь обсуждается всё, что касается макросов.
buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Mon 14 May, 2018 08:19

Latest post of the previous page:

John Doe wrote:
Mon 14 May, 2018 07:23
buniak_a_h wrote:
Sun 13 May, 2018 23:01
В документации ничего непонятно!
http://lua-users.org/wiki/DateAndTime
https://api.farmanager.com/ru/fsf/farclock.html
Спасибо, конечно... Много интересного прочитал. Но...
Первая ссылка рождает больше вопросов, чем ответов:
Модуль Hi Res Timer начинается с local alien=require"alien" - нет такого модуля... Дальше и читать не стал.
Модуль [Time] тоже начинается с local time = require "time", который тут же вызывает ошибку...
Про far.FarClock() я писал:
buniak_a_h wrote:
Sun 13 May, 2018 23:01
Про far.FarClock ВООБЩЕ НИЧЕГО НЕ НАПИСАНО! Что за "number"??? Количество секунд с полуночи? Количество миллисекунд? Количество суток с 01.09.1896 01.09.1899
Ну и последнее. тесты показали, что для отсчёта интервала времени прекрасно подходит win.GetSystemTimeAsFileTime(). Вы считаете это некорректным? Почему? Про эту функцию хотя бы написано конкретно:
result: number
Description:
The system time is expressed as number of milliseconds since January 1, 1601.

User avatar
John Doe
Бюрократ
Posts: 11858
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 131 times

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by John Doe » Mon 14 May, 2018 08:29

buniak_a_h wrote:
Mon 14 May, 2018 08:19
Спасибо, конечно... Много интересного прочитал. Но...
Детальное описание os.clock, больше ничего не имелось ввиду
buniak_a_h wrote:
Mon 14 May, 2018 08:19
Про far.FarClock() я писал:
Я читал что вы написали, а вот вы ссылку не открывали
buniak_a_h wrote:
Mon 14 May, 2018 08:19
прекрасно подходит win.GetSystemTimeAsFileTime(). Вы считаете это некорректным?
Полагаю что GetSystemTimeAsFileTime подходит, хотя FarClock и точнее.

buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Mon 14 May, 2018 08:55

John Doe wrote:
Mon 14 May, 2018 08:29
Я читал что вы написали, а вот вы ссылку не открывали
Да, извините. Увидел, что там про far.FarClock (точнее, про FSF.FarClock; но таблицы FSF нету, и единственную функцию FarClock я нашёл в таблице far), и решил, что я это уже читал...
Беспорядок в документации. Какая FSF??? Одна и та же функция описана в разных документах - какой читать? По логике - последний. И это - не FarEncyclopedia.ru.chm; он как раз - смый старый...
Ну, в общем, спасибо и извините за потраченное время. В любом случае сам ФАР копирует файл (как выяснилось, на твёрдотельном диске. На обычном не заметно) быстрее, чем и copy /b, и xcopy, и вызовом CopyFileEx без CallBack-рутины... Зато на сети (с подмапленного WebDAV-диска) этот скрипт на файле в 3 гб обгоняет ФАР на 17% (4' против 4'40"). Я не знаю, чем это объясняется, но это - факт, проверенный трижды. Жалко, не удалось победить докачку...

User avatar
John Doe
Бюрократ
Posts: 11858
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 131 times

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by John Doe » Mon 14 May, 2018 09:09

buniak_a_h wrote:
Mon 14 May, 2018 08:55
Беспорядок в документации. Какая FSF??? Одна и та же функция описана в разных документах - какой читать? По логике - последний.
Не буду утверждать что всё идеально, или очень просто, но порядок тем не менее есть.
LuaFAR задуман как тонкая прослойка между Lua и АПИ плагинов, и в мануале у большинства функций отсутствуют подробные описания, чтобы не дублировать Энциклопедию.

FSF = Far Standard Functions.

buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Mon 14 May, 2018 09:58

John Doe wrote:
Mon 14 May, 2018 09:09
чтобы не дублировать Энциклопедию.
Подход правильный. Но тогда вместо пустого описания returns number нужно было see hypperlink на энциклопедию (как во многих других местах).
Так, кстати, сделано в описании практически всех функций таблицы mf.
Только не расцените это как критику или претензии: это я оправдываюсь. Я прекрасно понимаю, что документация по факультативному проекту - дело самого нижнего приоритета. Потому и мысль про студентов пришла... :-)
Last edited by buniak_a_h on Mon 14 May, 2018 09:59, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 11858
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 131 times

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by John Doe » Mon 14 May, 2018 10:25

buniak_a_h wrote:
Mon 14 May, 2018 09:58
вместо пустого описания returns number нужно было see hypperlink на энциклопедию
Не вместо, а вместе. Нужно, да.
buniak_a_h wrote:
Mon 14 May, 2018 09:58
Вот откуда я могу знать, что поиск надо продолжить, что более подробное описание есть в другом документе?
Для LuaFAR первично АПИ плагинов, детально описанное в Энциклопедии.
Где искать какую документацию описано в шапках тем viewtopic.php?f=15&t=7302, viewtopic.php?f=15&t=4365

buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Mon 14 May, 2018 11:25

Мне, например, непонятно, при чём тут АПИ плагинов, если я собственно плагины не использую... Как выяснилось, кроме LuaFAR (неявно). Без плагина LuaFAR макросов не существует вообще. Ну странный подход: работа с макросами (в т.ч. клавиатурными) кажется неотъемлемой функцией ФАРа, а оказывается, её обеспечивает внешняя (по отношению к ядру ФАРа) библиотека...
В общем, данный конкретный вопрос решён, а логику мне всё равно не понять. Как и Вам - логику пользователя, просто пишущего скрипт на LUA.

User avatar
John Doe
Бюрократ
Posts: 11858
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 131 times

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by John Doe » Mon 14 May, 2018 11:35

buniak_a_h wrote:
Mon 14 May, 2018 11:25
Как и Вам - логику пользователя, просто пишущего скрипт на LUA.
Логику пользователя я вот прекрасно представляю, и вовсе не утверждаю, что она "неправильная".

Однако реальность такова, что у нас есть нагромождение нескольких апи, с неочевидными взаимными соотношениями, и к этому сильно фрагментированная документация.
В таких обстоятельствах надо либо потрудится и всё-таки вникнуть (один раз и навсегда), либо вовсе оставить эту непродуктивную затею.

Пользователем "просто пишущим скрипт" остаться не получится.

buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Mon 14 May, 2018 11:44

Я, кстати, сделал скрипт (Макрос, реализующий функции плагина Active-Help), который после индексации сам ищет (и часто - неплохо) функции. Причём при первом проходе поиск контекстно-зависимый, поэтому получается неплохо. Увы, конкретно с far.FarClock не работает: сразу находит точное совпадение в luafar_manual.chm. А там - "result: number" :-(
Но в большинстве случаев помогает очень...
Last edited by buniak_a_h on Mon 14 May, 2018 11:44, edited 1 time in total.

buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Tue 15 May, 2018 06:49

John Doe, не подскажете? Я нашёл функцию Far.UpTime() (сколько времени (в миллисекундах) работает Far Manager (своё значение для каждой запущенной копии)). Правильно ли я понимаю, что это тоже самое, что far.FarClock() ?

User avatar
John Doe
Бюрократ
Posts: 11858
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 131 times

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by John Doe » Tue 15 May, 2018 08:11

buniak_a_h wrote:
Tue 15 May, 2018 06:49
функцию Far.UpTime()
Это не функция, а свойство, т.е. круглые скобки не нужны.
buniak_a_h wrote:
Tue 15 May, 2018 06:49
Правильно ли я понимаю, что это тоже самое, что far.FarClock()
Не исключаю, что внутри они и реализованы сходным образом, но точно не идентичны: far.FarClock возвращает значение в микросекундах.

buniak_a_h
Posts: 518
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 55 times
Been thanked: 10 times
Contact:

CopyFileEx_Lua - копирование функцией CopyFileEx с визуализацией и возможностью снятия

Post by buniak_a_h » Fri 25 May, 2018 13:48

Скрипт изменён. Оформлен в виде модуля. В этот модуль, кроме собственно функции CopyFileEx_Lua, включено несколько утилиток, а также функция создания класса и два класса.

Post Reply

Return to “Обсуждение макросов”