コード例 #1
0
ファイル: Form1.cs プロジェクト: Zarhult/covid19analytics
        //Add New Data Point
        public void AddNewPoint(string Point)
        {
            string DataPoint   = Point.Substring(16);
            Regex  matchCommas = new Regex(",");

            String[]       values   = matchCommas.Split(DataPoint);
            COVIDDataPoint NewPoint = new COVIDDataPoint();

            NewPoint.Date    = values[0];
            NewPoint.Country = values[1];
            NewPoint.Sex     = values[2];
            NewPoint.Age     = values[3];
            NewPoint.ID      = Rows[Rows.Count - 1].ID + 1;
            Rows.Add(NewPoint);
            string        NewDate = NewPoint.Date[3].ToString() + NewPoint.Date[4].ToString() + '.' + NewPoint.Date[0].ToString() + NewPoint.Date[1].ToString() + ".20" + NewPoint.Date[6].ToString() + NewPoint.Date[7].ToString();
            string        Path    = "..\\..\\COVID19_open_line_list_Test.csv";
            StringBuilder Line    = new StringBuilder();
            string        newLine = NewPoint.ID.ToString() + "," + NewPoint.Age + "," + NewPoint.Sex + "," + "," + "," + NewPoint.Country + "," + "," + "," + "," + "," + "," + "," + NewDate;

            Line.Append(newLine);
            File.AppendAllText(Path, Line.ToString());
        }
コード例 #2
0
ファイル: Parser.cs プロジェクト: Zarhult/covid19analytics
        public static List <COVIDDataPoint> ParseCSV(String fileName)
        {
            List <COVIDDataPoint> data = new List <COVIDDataPoint>();

            using (StreamReader sr = new StreamReader(fileName))
            {
                // Skip first line to get to the data
                sr.ReadLine();

                while (!sr.EndOfStream)
                {
                    String line = sr.ReadLine();

                    Regex matchCommas = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))"); // Matches all commas in data that aren't inside quotes

                    String[] values = matchCommas.Split(line);

                    COVIDDataPoint point = new COVIDDataPoint();

                    for (int i = 0; i < values.Length; ++i)
                    {
                        values[i] = values[i].TrimStart('"'); // Remove quotes from data elements if present
                        values[i] = values[i].TrimEnd('"');
                    }

                    int[] dataIndices = { 0, 1, 2, 5, 12 }; // Indices we care about 0-ID 1-Age, 2-Sex, 5-Country, 12-Date
                    foreach (int index in dataIndices)
                    {
                        String val = values[index];
                        if (val != "") // Ignore empty data
                        {
                            switch (index)
                            {
                            case 0:
                                point.ID = Int32.Parse(val);
                                break;

                            case 1:

                                point.Age = val;
                                break;

                            case 2:
                                point.Sex = val;
                                break;

                            case 5:
                                point.Country = val;
                                break;

                            case 12:
                                point.Date = val;
                                break;
                            }
                        }
                    }
                    data.Add(point);
                }
            }

            return(data);
        }