Skip to end of metadata
Go to start of metadata

Cprime Apps has been rebranded as Anova Apps. Please note the only effect is the company name - all of our products’ names, logos, functionalities, support, etc. is exactly the same. The new location to our documentation space is


This routine is available starting with SIL Engine™ 4.0.8.


readFromCSVFile(path, hasHeader [, charset])


Reads the values from the CSV file, returning them to an array, of N rows * M columns values.


Parameter name







Specifies the file name to read from.

hasHeaderbooleanYesSpecifies if the file has header.
charsetstringNoSpecifies the charset used to read that file.

Return type

string []

The values from the file, as a string array.


The basic form will look like this:

string [] fileContent = readFromCSVFile("C:/test.csv", true);

However it is hardly usable. A better form will look like this:

//Suppose we have a CSV file with 3 columns, First Name, Last Name, Age

struct Emp {
  string fName;
  string lName;
  number age;

Emp [] fileContent = readFromCSVFile("C:/test.csv", true);

for(Emp e in fileContent) {
  //we can address them now in a better way .... so process row after row
  string s = e.fName + " " + e.lName + " / " + e.age;
  //do smth with that 's'

Unless calendar dates are in formats SIL can understand, dates should be imported as strings and further parsed afterwards in your SIL program.


  1. You can use absolute paths and relative paths to "sil.home".
  2. If the header exist, it must not have duplicated columns, otherwise you need to skip it manually.
  3. If the file is not found, an error will be raised.

See also