RosettaCodeData/Task/CSV-data-manipulation/M2000-Interpreter/csv-data-manipulation.m2000

51 lines
1.5 KiB
Plaintext

Locale 1032
Module Checkit {
Function Sum {
DECIMAL c=0
while not empty {
c+=number
}
=c
}
Document CSV$ = {C1,C2,C3,C4,C5
1,5,9,13,17
2,6,10.3,14,18
3,7,11,15,19
4,8,12,16,20
}
\\ export encoded to UTF-16LE
Save.Doc CSV$, "data1.csv", 0
\\ Open Wide read UTF-16LE
\\ use standard colum sep. as ","
\\ use standard decimal point char
\\ use standard (non json style string)
\\ True = use bare strings (without "")
Input With "","",,true
Write With chr$(9),locale$(0xE),,true
\\ for excel csv use Input With chr$(9),,true, true
Open "data1.csv" for Wide Input as #M
Open "data2.csv" for Wide Output as #M1
Input #M, h1$, h2$, h3$, h4$, h5$
Write #M1, h1$, h2$, h3$, h4$, h5$, "SUM"
Print h1$, h2$, h3$, h4$, h5$
While not Eof(#M) {
Input #M, A1, A2, A3, A4, A5
Write #M1, A1, A2, A3, A4, A5, Sum(A1, A2, A3, A4, A5)
Print A1, A2, A3, A4, A5
}
close #M1
Close #M
Input With chr$(9),locale$(0xE),,true
Open "data2.csv" for Wide Input as #M
Input #M, h1$, h2$, h3$, h4$, h5$, h6$
Print h1$, h2$, h3$, h4$, h5$, h6$
While not Eof(#M) {
Input #M, A1, A2, A3, A4, A5, Sum
Print A1, A2, A3, A4, A5, Sum
}
Close #M
Win "Excel", dir$+"data2.csv"
}
Checkit