Files
owniverse/data/csv_loader.gd
T

37 lines
847 B
GDScript
Raw Normal View History

class_name CSVLoader
static func load(csv_text: String) -> Array[Dictionary]:
var rows: Array[Dictionary] = []
var lines := csv_text.strip_edges().split("\n")
if lines.size() < 2:
return rows
var headers := lines[0].split(",")
for i in range(1, lines.size()):
var line := lines[i].strip_edges()
if line.is_empty():
continue
var values := line.split(",")
if values.size() != headers.size():
push_warning(
"CSV row %d has %d columns, expected %d"
% [i + 1, values.size(), headers.size()]
)
continue
var row: Dictionary = {}
for j in range(headers.size()):
row[headers[j].strip_edges()] = values[j].strip_edges()
rows.append(row)
print(rows)
return rows