1

晚上好,

我目前正在开发一种将机器创建的数据从 csv 表导入数据库的方法。我的问题是,有没有办法用 Lua 对 csv 文件的变化做出反应。

该文件以这种格式获取一行:

17162H,"801234500001",9/23/2016 12:33:30 PM,"INV"

每次扫描器完成扫描过程时,在旧行下添加,但没有直接连接到数据库,以触发脚本。

是否通过不同的文件大小、文件夹大小(包含文件的文件夹)或文件信息中的更改(如上次打开的日期)检测到更改并不重要,但我无法打开并读取它永久由于性能原因。

这也是我第一次在这里问,很抱歉我笨拙的方式,随着时间的推移,我会努力提高自己。

4

3 回答 3

2

看看linotify,它有 inotify 的 lua 绑定,看起来它应该可以解决问题,使用“修改”事件来触发你的脚本。

于 2016-09-23T12:51:30.567 回答
2

我在我的spylog 应用程序中使用基于 LibUV 的变体 用法:

file_monitor(path_to_file, {eol = '\r?\n'}, function(line)
  ... 
end)
于 2016-09-23T14:50:15.407 回答
1

如果你需要在 Windows 上运行它,你可以使用支持文件观察器的winapi 库。这是一个如何在我的一个项目中使用它的示例;您需要打电话给检查触发时间。winapi.sleep()

于 2016-09-23T14:37:13.510 回答