Dangerous Date, Падение интерпретатора lua и зависание Quik'а вместе с ним при ошибке в os.date(format).
Пользователь
Сообщений: Регистрация: 31.03.2016
19.04.2017 12:00:26
Возможно баян, но заметил, что интерпретатор Lua падает с ошибкой (скриншот), а Quik зависает намертво, если при форматировании даты с помощью os.date(format) допустить ошибку в format. Будьте осторожны, pcall и xpcall бессильны с ней справиться!
Например:
Код
local r,err = pcall( function()
print(os.date("%d.%.m.%Y")) -- error
--print(os.date("%d.%m.%Y"))
return 1
end )
print(r,err)
Возможно, эту беду починили в Lua 5.2
Падение QUIK с General Protection Fault, DestroyTable() и Clear() при вызове из функции обратного вызова для обработки событий в таблице
Пользователь
Сообщений: Регистрация: 31.03.2016
20.02.2017 06:59:09
Причина интересна, но как временное решение может попробовать не уничтожать/создавать таблицу, а скрывать/показывать, очищая/меняя содержимое?
проверка файла на существование
Пользователь
Сообщений: Регистрация: 31.03.2016
07.10.2016 15:00:49
Цитата
Sergey Denegin написал: А подскажите пожалуйста, где его скачать и куда положить нужно?
Скачайте отсюда два первых дистрибутива и .При установке они должны лежать рядом. После установки, найдёте path.lua в C:\Program Files\Lua\5.1\lua\pl. И не забудьте про
Ещё в стандартной Lua for Windows 5.1 есть path.lua, где много всего полезного.
Код
local path = require"pl.path"
if path.exists(filename) then
...
end
Кто как решил вопрос уведомления о сделках?
Пользователь
Сообщений: Регистрация: 31.03.2016
05.10.2016 15:32:38
Есть хорошая обёртка для отправки писем lua-sendmail: Ей потребуется luasec, который в уже собранном виде можно взять из из третьего поста вот такого топика: Там несколько скомпилированных ssl.dll - для Lua 5.1, 5.2 и 5.3. Файлы libeay32.dll и ssleay32.dll пришлось на одном компе ( WinXP ) положить в C:\Program Files\Lua\5.1\clibs и заработало, а на других компах ( Win8, Win10 ) удалось только копированием в папку с Quik'ом, иначе прилетала такая ошибка: "error loading module 'ssl.core' from file 'C:/Program Files (x86)/Lua/5.1/clibs/ssl.dll': Не найден указанный модуль"
С помощью sendmail можно слать письма и с серверов, требующих ssl/tls ( порт по-умолчанию 465 ) Вот примеры для mail.ru и gmail.com:
Код
local sendmail = require("sendmail")
local result,error = sendmail{
from = 'from@mail.ru',
to = 'to@some.domen',
server = {
ssl = {
protocol = "sslv3",
verify = {"none"},
options = {"all", "no_sslv2"},
},
address = 'smtp.mail.ru';
user = 'from@mail.ru';
password = '***';
},
message = { subject = "Тема", text = "текст", },
}
local result,error = sendmail{
from = 'from@gmail.com',
to = 'to@some.domen',
server = {
ssl = {
protocol = "tlsv1",
verify = {"none"},
options = {"all" },
},
address = 'smtp.gmail.com';
user = 'from@gmail.com';
password = '***';
},
message = {
subject = "Тема",
text = [[
Some
Text
]],
file = 'C:\some.file',
}
}