public static object ReadDataFromCSV(string filePath, int titleRows = 0, string valuesSeparator = ";", string linesSeparator = "\n") { string dataString = ServiceTools2G.ReadTextFromFile(filePath); List <string> dataSubstrings = new List <string>(dataString.Split(linesSeparator.ToCharArray())); if (titleRows > 0) { dataSubstrings = dataSubstrings.Skip(titleRows).ToList(); } dataSubstrings.RemoveAll(str => str == ""); string[] values0 = dataSubstrings[0].Split(valuesSeparator.ToCharArray()); if (values0.Count() == 1) { DenseVector retVec = DenseVector.Create(dataSubstrings.Count(), idx => Convert.ToDouble(dataSubstrings[idx].Replace(".", ","))); return(retVec); } else { DenseMatrix retMatrix = DenseMatrix.Create(dataSubstrings.Count(), values0.Count(), (r, c) => Convert.ToDouble(dataSubstrings[r].Split(valuesSeparator.ToCharArray())[c].Replace(".", ","))); //foreach (string substring in dataSubstrings) //{ // List<string> currRowStrings = new List<string>(substring.Split(valuesSeparator.ToCharArray())); // retMatrix.InsertRow(retMatrix.RowCount, // DenseVector.OfEnumerable( // currRowStrings.ConvertAll<double>(str => Convert.ToDouble(str.Replace(".", ","))))); //} return(retMatrix); } }
public static List <List <string> > ReadDataFromCSV(string filePath, int titleRows = 0, bool nonNumberData = true, string valuesSeparator = ";", string linesSeparator = "\n") { string dataString = ServiceTools2G.ReadTextFromFile(filePath); List <string> dataSubstrings = new List <string>(dataString.Split(linesSeparator.ToCharArray())); if (titleRows > 0) { dataSubstrings = dataSubstrings.Skip(titleRows).ToList(); } dataSubstrings.RemoveAll(str => str == ""); List <List <string> > output = dataSubstrings.ConvertAll <List <string> >( str => new List <string>(str.Split(valuesSeparator.ToCharArray()))); return(output); }