数组中的第二个对象被忽略(godot)
2nd object in array ignored (godot)
我有一个保存乐谱的 .csv 文件。这是它的样子:
"name",10
.csv 使用此函数解析:
func _ready():
var file = File.new()
file.open("user://scores.csv", file.READ)
while !file.eof_reached():
line = file.get_csv_line()
text = text + "%s: %s" % [line[0], line[1]] + "\n" ## Invalid get index: '1' (on base: PoolStringArray)
文件必须以新行结尾。结果,您在阅读时会看到两行。第一个符合你的预期 ([name, 10]
),第二个是空的,当你试图索引它时会导致错误。
当我测试这个时,最后一行不是一个空数组,而是一个带有单个空字符串的数组。环顾四周,这种行为已经存在了一段时间。但是,我没有发现错误报告或建议,我想知道是否有原因,或者这只是被忽略了。
您可以查看您得到的列数。例如,下面的代码将跳过任何字段不足的行:
if line.size() < 2:
continue
并且此代码将专门针对额外的行:
if file.eof_reached() and line.size() == 1 and line[0] == "":
break
我有一个保存乐谱的 .csv 文件。这是它的样子:
"name",10
.csv 使用此函数解析:
func _ready():
var file = File.new()
file.open("user://scores.csv", file.READ)
while !file.eof_reached():
line = file.get_csv_line()
text = text + "%s: %s" % [line[0], line[1]] + "\n" ## Invalid get index: '1' (on base: PoolStringArray)
文件必须以新行结尾。结果,您在阅读时会看到两行。第一个符合你的预期 ([name, 10]
),第二个是空的,当你试图索引它时会导致错误。
当我测试这个时,最后一行不是一个空数组,而是一个带有单个空字符串的数组。环顾四周,这种行为已经存在了一段时间。但是,我没有发现错误报告或建议,我想知道是否有原因,或者这只是被忽略了。
您可以查看您得到的列数。例如,下面的代码将跳过任何字段不足的行:
if line.size() < 2:
continue
并且此代码将专门针对额外的行:
if file.eof_reached() and line.size() == 1 and line[0] == "":
break