Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
42
Task/CSV-data-manipulation/Ursa/csv-data-manipulation.ursa
Normal file
42
Task/CSV-data-manipulation/Ursa/csv-data-manipulation.ursa
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#
|
||||
# csv data manipulation
|
||||
#
|
||||
|
||||
# declare a string stream to hold lines
|
||||
decl string<> lines
|
||||
|
||||
# open the file specified on the command line, halting
|
||||
# execution if they didn't enter one. it will be created if
|
||||
# it doesn't exist yet
|
||||
decl file f
|
||||
if (< (size args) 2)
|
||||
out "error: please specify a csv file" endl console
|
||||
stop
|
||||
end if
|
||||
f.create args<1>
|
||||
f.open args<1>
|
||||
|
||||
# read in all lines from the file
|
||||
set lines (f.readlines)
|
||||
|
||||
# append sum column to header
|
||||
set lines<0> (+ lines<0> ",SUM")
|
||||
|
||||
# determine sums and append them
|
||||
decl int i sum
|
||||
for (set i 1) (< i (size lines)) (inc i)
|
||||
set sum 0
|
||||
for (decl int j) (< j (size (split lines<i> ","))) (inc j)
|
||||
set sum (int (+ sum (int (split lines<i> ",")<j>)))
|
||||
end for
|
||||
set lines<i> (+ lines<i> (+ "," sum))
|
||||
end for
|
||||
|
||||
# delete the file, then create it again
|
||||
f.delete args<1>
|
||||
f.create args<1>
|
||||
|
||||
# output all lines to the file
|
||||
for (set i 0) (< i (size lines)) (inc i)
|
||||
out lines<i> endl f
|
||||
end for
|
||||
Loading…
Add table
Add a link
Reference in a new issue