ошибка работы скрипта

Страницы: 1
RSS
ошибка работы скрипта, ошибка появилась при смене 7 версии на 8
 
Добрый день.
При переходе с 7 на 8 версию квика , перестал работать скрипт, который ждет определенного момента времени и направляет в систему построчно заявки из .tri-файла

start.lua:18: bad argument #2 to 'for iterator' (string expected, got FILE*)


Сам скрипт
local FilNameRead = "C:\\Users\\Administrator\\Desktop\\orders.tri"
local FileRead

stopped = false

function OnStop(s)
  stopped = true
end


FileRead = io.open(FilNameRead, "r")


function main()
  while not stopped do
     server_time = getInfoParam("SERVERTIME")
     if server_time >= '10:00:01' then
        for line in FileRead:lines(FileRead) do sendTransaction(line) end
        break
     end
  sleep(100)
  end
end

Подскажите, пжл
 
lua предоставляет два варианта итеративной функции

Код
for line in io.lines("my.txt") do print(line) end


for line in file:lines() do print(line) end


Во втором случае - это просто "синтаксический сахар". Передавать FileRead:lines(FileRead) аргумент не надо, он уже передается при использовании нотации вызова FileRead:lines
 
Сомн ительно, что это работало к вас в предыдущей версии. Вызов функции неправилен


io.lines ([filename])

Открывает файл с данным именем в режиме чтения и возвращает функцию-итератор
которая при каждом последующем вызове возвращает новую строчку из файла. Т.о., конструкция

-- обработка всех строк файла
for line in io.lines(filename) do body end
 
Спасибо за помощь! =)
 
Цитата
s_mike@rambler.ru написал:
Сомн ительно, что это работало к вас в предыдущей версии.
Lua 5.3 / 5.4 имеет изменения в file:lines (···), добавляющие форматы, которые определяют, что читать. Т.о., функция ожидает строку в качестве аргумента, о чём и сообщает в ошибке.
В Lua 5.1 переданный аргумент просто игнорировался.
Я не могу быть заинтересован в устранении ошибок в чужом ПО больше, чем его разработчик.
Страницы: 1
Читают тему (гостей: 1)
Наверх