Ejemplo n.º 1
0
        public bool OpenFile(string filename)
        {
            //determine file structure
            ParseFile(filename);

            reader = File.OpenText(filename);
            parser = new CsvParser(reader);

            //clear data
            FileData = new List <List <List <int> > >();
            List <List <int> > CaseData = new List <List <int> >();

            if (Path.GetExtension(filename) == ".csv")
            {
                while (true)
                {
                    string[] row = parser.Read();

                    //end of file - add current case and break
                    if (row == null)
                    {
                        //if Casedata populated - add it to FileData
                        if (CaseData.Count > 0)
                        {
                            FileData.Add(CaseData);
                        }
                        break;
                    }

                    //"Case" line - add current case and clear it
                    if (row[0].Trim() == "Case")
                    {
                        //if Casedata populated - add it to FileData
                        if (CaseData.Count > 0)
                        {
                            FileData.Add(CaseData);
                        }
                        CaseData = new List <List <int> >();
                    }

                    //read case data
                    if (row[0].Trim() != "Case")
                    {
                        //List<int> line = Array.ConvertAll(row, s => int.Parse(s)).ToList();
                        List <int> line = Array.ConvertAll(row, int.Parse).ToList();                        //lambda
                        //List<int> line2 = row.Select(int.Parse).ToList(); //linq
                        CaseData.Add(line);
                    }
                }

                Filename = filename;
                ScreenUpdateData.Filename        = filename;
                ScreenUpdateData.FileNumColumnsX = NumColumnsX;
                ScreenUpdateData.FileNumColumnsY = NumColumnsY;
                return(true);
            }
            else
            {
                Filename = "";
                ScreenUpdateData.Filename        = Filename;
                ScreenUpdateData.FileNumColumnsX = 0;
                ScreenUpdateData.FileNumColumnsY = 0;
                return(false);
            }
        }