CSV spreadsheet files are suitable for storing tabular data in a relatively portable way.

The CSV format is flexible but somewhat ill-defined.

For present purposes, authors may assume that the data fields contain no commas, backslashes, or quotation marks.



Task

Read a CSV file, change some values and save the changes back to a file.

For this task we will use the following CSV file:

C1,C2,C3,C4,C5
1,5,9,13,17
2,6,10,14,18
3,7,11,15,19
4,8,12,16,20

Suggestions


 Show how to add a column, headed 'SUM', of the sums of the rows.
 If possible, illustrate the use of built-in or standard functions, methods, or libraries, that handle generic CSV files.



 
// For test purposes, start by creating (or re-creating) the data file
put {{
C1,C2,C3,C4,C5
1,5,9,13,17
2,6,10,14,18
3,7,11,15,19
4,8,12,16,20
}} into file "myData.csv"
 
// Read the file as a list of lists (rather than as the default list of property lists)
put CSVValue(file "myData.csv", asLists:Yes) into csvData
 
insert "SUM" into item 1 of csvData -- add a new column heading
 
// Go through all of the data rows to add the sum
repeat with rowNum= 2 to the number of items in csvData
	insert the sum of item rowNum of csvData into item rowNum of csvData
end repeat
 
put csvData -- see the modified data as a list of lists
 
put CSVFormat of csvData into file "myData.csv"
 
put file "myData.csv" -- display the updated file contents
 
 