Ejemplo n.º 1
0
        public List <ObjectFull> ProcessTxtFile(string filePath)
        {
            var tempList = new List <ObjectFull>();

            if (File.Exists(filePath))
            {
                using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                    using (BufferedStream bs = new BufferedStream(fs))
                        using (StreamReader sr = new StreamReader(bs))
                        {
                            string line;
                            while ((line = sr.ReadLine()) != null)
                            {
                                if (!String.IsNullOrEmpty(line))
                                {
                                    try
                                    {
                                        var listValues = line.Split(',');

                                        string msgtype = ""; string transmissiontype = "";

                                        msgtype          = listValues[0];
                                        transmissiontype = listValues[1];
                                        if (transmissiontype.Trim() == "2" || transmissiontype.Trim() == "6" || transmissiontype.Trim() == "7" || transmissiontype.Trim() == "8")
                                        {
                                            continue;
                                        }
                                        string icao = "";
                                        string tempdategenerate = "";
                                        string temptimegenerate = "";
                                        string tempdatelog = "";
                                        string temptimelog = "";
                                        string callsign = "";
                                        string tempaltitude = ""; string tempspeed = ""; string track = ""; string latitude = "";
                                        string longitude = "";
                                        string tempverticalrate = ""; string squawk = "";

                                        icao             = listValues[4];
                                        tempdategenerate = listValues[6];
                                        temptimegenerate = listValues[7];

                                        tempdatelog  = listValues[8];
                                        temptimelog  = listValues[9];
                                        callsign     = listValues[10];
                                        tempaltitude = listValues[11];
                                        tempspeed    = listValues[12];
                                        track        = listValues[13];

                                        latitude         = listValues[14];
                                        longitude        = listValues[15];
                                        tempverticalrate = listValues[16];
                                        squawk           = listValues[17];



                                        var s = tempdategenerate + " " + temptimegenerate;
                                        //DateTime dt = DateTime.ParseExact(s, "yyyy/MM/dd HH:mm:tt.ss", CultureInfo.InvariantCulture);

                                        DateTime dateGenerate = DateTime.ParseExact(tempdategenerate + " " + temptimegenerate, "yyyy/MM/dd HH:mm:ss.fff", CultureInfo.InvariantCulture);

                                        DateTime dateLog = DateTime.ParseExact(tempdatelog + " " + temptimelog, "yyyy/MM/dd HH:mm:ss.fff", CultureInfo.InvariantCulture);


                                        var newTargetObject = new ObjectFull();
                                        newTargetObject.ICAO             = icao;
                                        newTargetObject.callsign         = callsign;
                                        newTargetObject.altitude         = tempaltitude;
                                        newTargetObject.speed            = tempspeed;
                                        newTargetObject.dategenerate     = dateGenerate;
                                        newTargetObject.datelog          = dateLog;
                                        newTargetObject.messageType      = msgtype;
                                        newTargetObject.transmissionType = transmissiontype;

                                        newTargetObject.track        = track;
                                        newTargetObject.latitude     = latitude;
                                        newTargetObject.longitude    = longitude;
                                        newTargetObject.verticalrate = tempverticalrate;
                                        newTargetObject.squawk       = squawk;
                                        tempList.Add(newTargetObject);
                                    }
                                    catch
                                    {
                                    }
                                }
                            }
                        }
            }
            return(tempList);
        }
Ejemplo n.º 2
0
        public List <ObjectFull> ProcessFile(string filePath)
        {
            Application xlApp = new Microsoft.Office.Interop.Excel.Application();

            Microsoft.Office.Interop.Excel.Workbook   xlWorkbook  = xlApp.Workbooks.Open(filePath);
            Microsoft.Office.Interop.Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
            Microsoft.Office.Interop.Excel.Range      xlRange     = xlWorksheet.UsedRange;
            var fileName = Path.GetFileName(filePath);
            int rowCount = xlRange.Rows.Count;
            int colCount = xlRange.Columns.Count;

            object[,] values = xlRange.Value2;
            if (values == null)
            {
                GC.Collect();
                GC.WaitForPendingFinalizers();

                //rule of thumb for releasing com objects:
                //  never use two dots, all COM objects must be referenced and released individually
                //  ex: [somthing].[something].[something] is bad

                //release com objects to fully kill excel process from running in the background
                Marshal.ReleaseComObject(xlRange);
                Marshal.ReleaseComObject(xlWorksheet);

                //close and release
                xlWorkbook.Close();
                Marshal.ReleaseComObject(xlWorkbook);

                //quit and release
                xlApp.Quit();
                Marshal.ReleaseComObject(xlApp);
                return(null);
            }


            var tempList = new List <ObjectFull>();

            for (int i = 1; i <= rowCount; i++)
            {
                try
                {
                    string msgtype = ""; string transmissiontype = "";
                    string icao = "";
                    string tempdategenerate = "";
                    string temptimegenerate = "";
                    string tempdatelog = "";
                    string temptimelog = "";
                    string callsign = "";
                    string altitude = ""; string speed = ""; string track = ""; string latitude = "";
                    string longitude = "";
                    string verticalrate = ""; string squawk = "";
                    var    te = xlRange.Cells[i, 1];
                    var    xp = xlRange.Cells[i, 1].Value2;

                    msgtype          = Convert.ToString(values[i, 1]);
                    transmissiontype = Convert.ToString(values[i, 2]);
                    if (transmissiontype.Trim() == "2" || transmissiontype.Trim() == "7" || transmissiontype.Trim() == "8")
                    {
                        continue;
                    }
                    icao             = Convert.ToString(values[i, 5]);
                    tempdategenerate = Convert.ToString(values[i, 7]);
                    temptimegenerate = Convert.ToString(values[i, 8]);

                    tempdatelog = Convert.ToString(values[i, 9]);
                    temptimelog = Convert.ToString(values[i, 10]);
                    callsign    = Convert.ToString(values[i, 11]);
                    altitude    = Convert.ToString(values[i, 12]);
                    speed       = Convert.ToString(values[i, 13]);
                    track       = Convert.ToString(values[i, 14]);

                    latitude     = Convert.ToString(values[i, 15]);
                    longitude    = Convert.ToString(values[i, 16]);
                    verticalrate = Convert.ToString(values[i, 17]);
                    squawk       = Convert.ToString(values[i, 18]);


                    double   d1 = double.Parse(tempdategenerate);
                    DateTime dg = DateTime.FromOADate(d1);

                    double   t1 = double.Parse(temptimegenerate);
                    DateTime tg = DateTime.FromOADate(t1);

                    double   d2 = double.Parse(tempdatelog);
                    DateTime dl = DateTime.FromOADate(d2);

                    double   t2 = double.Parse(temptimelog);
                    DateTime tl = DateTime.FromOADate(t2);

                    DateTime dateGenerate = new DateTime(dg.Year, dg.Month, dg.Day, tg.Hour, tg.Minute, tg.Second);

                    DateTime dateLog = new DateTime(dl.Year, dl.Month, dl.Day, tl.Hour, tl.Minute, tl.Second);


                    var newTargetObject = new ObjectFull();
                    newTargetObject.ICAO             = icao;
                    newTargetObject.callsign         = callsign;
                    newTargetObject.altitude         = altitude;
                    newTargetObject.speed            = speed;
                    newTargetObject.dategenerate     = dateGenerate;
                    newTargetObject.datelog          = dateLog;
                    newTargetObject.messageType      = msgtype;
                    newTargetObject.transmissionType = transmissiontype;

                    newTargetObject.track        = track;
                    newTargetObject.latitude     = latitude;
                    newTargetObject.longitude    = longitude;
                    newTargetObject.verticalrate = verticalrate;
                    newTargetObject.squawk       = squawk;
                    tempList.Add(newTargetObject);
                }
                catch (Exception ex)
                {
                    //MessageBox.Show(ex.InnerException.Message);
                    Console.WriteLine(ex.Message);
                }
            }

            //cleanup
            GC.Collect();
            GC.WaitForPendingFinalizers();

            //rule of thumb for releasing com objects:
            //  never use two dots, all COM objects must be referenced and released individually
            //  ex: [somthing].[something].[something] is bad

            //release com objects to fully kill excel process from running in the background
            Marshal.ReleaseComObject(xlRange);
            Marshal.ReleaseComObject(xlWorksheet);

            //close and release
            xlWorkbook.Close();
            Marshal.ReleaseComObject(xlWorkbook);

            //quit and release
            xlApp.Quit();
            Marshal.ReleaseComObject(xlApp);

            return(tempList);
        }