lua – 逐行读取文件到数组中

lua – 逐行读取文件到数组中,第1张

概述对不起,我还在学习lua.你可以纠正我,为什么文件中的数据不会逐行读取? 这是我在文件points.txt中的示例数据: lexxo:30:1rey:40:2lion:40:2prince:50:3royal:50:3 所以当我从上面得到的是2d阵列(表) player = {{(name),(points),(which var point earned on index)}, 对不起,我还在学习lua.你可以纠正我,为什么文件中的数据不会逐行读取?

这是我在文件points.txt中的示例数据:

lexxo:30:1rey:40:2lion:40:2prince:50:3royal:50:3

所以当我从上面得到的是2d阵列(表)

player = {{(name),(points),(which var point earned on index)},{(...),(...),(...)}};

所以问题是,当我尝试循环打印文件中的所有数据.它只打印最新的一行.所以我想要打印所有这些

line_points =  {}player_data = {{}}local rfile = io.open("points.txt","r")for line in rfile:lines() do    playername,playerpoint,playerIDpoint = line:match("^(.-):(%d+):(%d+)$")    player_data = {{playername,playerIDpoint}}    line_points[#line_points + 1] = player_dataendfor i = 1,#player_data do    player_checkname = player_data[i][1] -- Get Player name From Array for checking further    player_checkpnt = player_data[i][3] -- Get Player ID Point From Array for checking further    print(i..". name: "..player_data[i][1].." Point: ".. player_data[i][2] .. " ID: " .. player_data[i][3]);end
解决方法 player_data总是有索引1,因为你没有向它添加项目,你将它们添加到line_points,其中#line_points是5,所以请改用它.

那是你想要的吗?

line_points =  {}player_data = {{}} --I think you can delete it at all...--Because it is rewriting each time.local rfile = io.open("points.txt",playerIDpoint = line:match("^(.-):(%d+):(%d+)$")    player_data = {playername,playerIDpoint}    --I also remover double table here ^^^^^^^^^^^^^^^^^^^    line_points[#line_points + 1] = player_dataend--Here i checked counts--print('#pd='..#player_data)--print('#lp='..#line_points)--After it i decIDed to use line_points instead of player_datafor i = 1,#line_points do    player_checkname = line_points[i][1] -- Get Player name From Array for checking further    player_checkpnt = line_points[i][3] -- Get Player ID Point From Array for checking further    print(i..". name: "..line_points[i][1].." Point: ".. line_points[i][2] .. " ID: " .. line_points[i][3]);end

输出:

1. name: lexxo Point: 30 ID: 12. name: rey Point: 40 ID: 23. name: lion Point: 40 ID: 24. name: prince Point: 50 ID: 35. name: royal Point: 50 ID: 3

更新:

在第一个循环中将player_data assignemnt更改为单个表后,它的计数总是为3.

总结

以上是内存溢出为你收集整理的lua – 逐行读取文件到数组中全部内容,希望文章能够帮你解决lua – 逐行读取文件到数组中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1219504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存