Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
13
Task/CSV-data-manipulation/Lua/csv-data-manipulation-1.lua
Normal file
13
Task/CSV-data-manipulation/Lua/csv-data-manipulation-1.lua
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
-- Lua has no built in methods to handle csv files.
|
||||
-- it does have string.gmatch, which we use to global.match whatever isn't a comma
|
||||
|
||||
print(io.read"l" .. ",SUM")
|
||||
for line in io.lines() do
|
||||
local fields, sum = {}, 0
|
||||
for field in line:gmatch"[^,]+" do
|
||||
table.insert(fields, field)
|
||||
sum = sum + field
|
||||
end
|
||||
table.insert(fields, sum)
|
||||
print(table.concat(fields,","))
|
||||
end
|
||||
26
Task/CSV-data-manipulation/Lua/csv-data-manipulation-2.lua
Normal file
26
Task/CSV-data-manipulation/Lua/csv-data-manipulation-2.lua
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
local csv={}
|
||||
|
||||
-- read csv file, save records and fields into table
|
||||
for line in io.lines('file.csv') do
|
||||
local fields = {}
|
||||
for field in line:gmatch"[^,]+" do
|
||||
table.insert(fields, tonumber(field) or field)
|
||||
end
|
||||
table.insert(csv, fields)
|
||||
end
|
||||
|
||||
-- change csv values
|
||||
table.insert(csv[1], 'SUM')
|
||||
for i=2,#csv do
|
||||
local sum=0
|
||||
for _, val in ipairs(csv[i]) do
|
||||
sum = sum + val
|
||||
end
|
||||
table.insert(csv[i], sum)
|
||||
end
|
||||
|
||||
-- Save
|
||||
local fileHandler = io.open('file.csv', 'w')
|
||||
for NR, fields in ipairs(csv) do
|
||||
fileHandler:write(table.concat(fields,","), "\n")
|
||||
end
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
local csv={}
|
||||
for line in io.lines('file.csv') do
|
||||
table.insert(csv, {})
|
||||
local i=1
|
||||
for j=1,#line do
|
||||
if line:sub(j,j) == ',' then
|
||||
table.insert(csv[#csv], line:sub(i,j-1))
|
||||
i=j+1
|
||||
end
|
||||
end
|
||||
table.insert(csv[#csv], line:sub(i,j))
|
||||
end
|
||||
|
||||
table.insert(csv[1], 'SUM')
|
||||
for i=2,#csv do
|
||||
local sum=0
|
||||
for j=1,#csv[i] do
|
||||
sum=sum + tonumber(csv[i][j])
|
||||
end
|
||||
if sum>0 then
|
||||
table.insert(csv[i], sum)
|
||||
end
|
||||
end
|
||||
|
||||
local newFileData = ''
|
||||
for i=1,#csv do
|
||||
newFileData=newFileData .. table.concat(csv[i], ',') .. '\n'
|
||||
end
|
||||
|
||||
local file=io.open('file.csv', 'w')
|
||||
file:write(newFileData)
|
||||
Loading…
Add table
Add a link
Reference in a new issue