String 从文件中选择一个字符串

String 从文件中选择一个字符串,string,lua,String,Lua,我正在尝试制作一个系统,为游戏服务器备份和恢复点数,这样它就可以安全地重新启动,而不会丢失任何东西。 我已经制作了一个脚本来实现这一点,而实际的备份部分工作得很好,但恢复部分却不行 这是在使用“备份(读取)”的情况下运行的脚本(备份(写入)的工作原理与设计的一样完美): 我不确定我做错了什么,我看过的大多数网站也帮不了那么多忙。问题是它没有从文件中读取任何值 任何帮助都将不胜感激:) 编辑: 我们必须将分数除以3的原因是服务器将所有分数乘以3。如果我们不将其除以3,那么每次恢复时的分数将始终是原

我正在尝试制作一个系统,为游戏服务器备份和恢复点数,这样它就可以安全地重新启动,而不会丢失任何东西。 我已经制作了一个脚本来实现这一点,而实际的备份部分工作得很好,但恢复部分却不行

这是在使用“备份(读取)”的情况下运行的脚本(备份(写入)的工作原理与设计的一样完美):

我不确定我做错了什么,我看过的大多数网站也帮不了那么多忙。问题是它没有从文件中读取任何值

任何帮助都将不胜感激:)

编辑:

我们必须将分数除以3的原因是服务器将所有分数乘以3。如果我们不将其除以3,那么每次恢复时的分数将始终是原来的3倍。 backup.CHK文件的内容示例:

The server is dependent on this file, and writes to it every hour. Please do not edit.

    File Last Modified: 11/07/2013
    This file was generated by the servers' autobackup system.

--------------------------

    time: 22:51
    us: 453445
    nk: 454567

以下是一些可能导致问题的原因:

使用与尽可能短的模式匹配的
(.-)
惰性匹配——这可能包括一个空字符串。通常,您希望使模式尽可能具体,同时仍然匹配所需的可能输入。对于
us
nk
来说,
(%d+)
似乎是合适的选择

source:lines()do中的
行每次读取一行。这必然意味着并非所有变量都将在循环内设置。然而,从
局部参数开始的所有东西,以及向下的所有东西,都像使用变量一样使用这些变量。在我看来,代码部分甚至不应该在循环中


最后,您是否考虑过将备份文件保存为另一个lua文件?这样做意味着您可以让lua为您完成繁重的工作,而无需自己解析它。这也将错误风险降至最低。

我想您的意思是这是备份(读取)的代码。
(其中read是一个正确设置的变量,它是truth-y。您可以发布备份文件内容的示例,以及您希望加载文件的具体操作吗?该代码看起来不像我希望您做的那样。具体地说,在分配给
backup
表后,您永远不会使用它。您可以创建一个新的e> 备份每行的
表格,如果在该行中找不到特定值,则用默认值填充该表格。
US
NK
在从文件中读取时会进行全局修改。有关文件内容的示例,请参阅编辑的问题。系统需要获取写入备份文件的时间和日期,例如与美国队和NK队的分数长。然后它应该将分数给予我们刚刚在服务器中临时生成的球员,以便恢复球队的分数。备份文件是否包含这些字段的多个条目,或任何给定信息的一行?它只包含每一条信息的一行n、 对我来说,没有必要有多个备份文件,因为这是一个非常繁忙的游戏服务器,它每小时都以这种方式备份。我最终决定将其保存为LUA脚本,现在可以正常工作。感谢您的帮助:)。
The server is dependent on this file, and writes to it every hour. Please do not edit.

    File Last Modified: 11/07/2013
    This file was generated by the servers' autobackup system.

--------------------------

    time: 22:51
    us: 453445
    nk: 454567