Files
argon-v3/modules/csv/init.ar
2023-04-08 15:34:20 +02:00

27 lines
1.0 KiB
Plaintext

let read(path) = do
f = file.read(path)
text = f.text()
data = []
splitlines = text.split("\n")
for (i from 0 to splitlines.length) do
values = []
in_quotes = false
start = 0
line = splitlines[i]
for (j from 0 to line.length) do
char = line[j]
if (char == "," && not in_quotes) do
value = line[start:j].rightstrip("\r").strip()
if (value && value[0] == "\"" && value[-1] == "\"") value = value[1:value.length - 1]
value = value.replace("\"\"", "\"")
values.append(value)
start = j + 1
else if (char == "\"") in_quotes = not in_quotes
if (j == line.length - 1) do
value = line[start:j + 1].rightstrip("\r").strip()
if (value && value[0] == "\"" && value[-1] == "\"") value = value[1:value.length - 1]
value = value.replace("\"\"", "\"")
values.append(value)
data.append(values)
return data