예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }