예제 #1
0
        //
        // reference: http://stackoverflow.com/questions/7119806/reading-data-from-xml
        //

        static public void Read(string folder, string xmlFileName)
        {
            XmlReader reader = null;
            string    name = string.Empty, latitude = string.Empty, longitude = string.Empty;

            using (reader = XmlReader.Create(xmlFileName))
            {
                reader.MoveToContent();

                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "Placemark")
                    {
                        while (reader.Read())
                        {
                            if (reader.NodeType == XmlNodeType.Element && reader.Name == "name")
                            {
                                name = reader.ReadString();
                                break;
                            }
                        }

                        while (reader.Read())
                        {
                            if (reader.NodeType == XmlNodeType.Element && reader.Name == "description")
                            {
                                string    stringer  = reader.ReadString();
                                string [] delimitor = { "<br>" };
                                string [] stringers = stringer.Split(delimitor, System.StringSplitOptions.None);

                                latitude  = stringers [1];
                                latitude  = latitude.Replace("Latitude: ", "");
                                longitude = stringers [2];
                                longitude = longitude.Replace("Longitude: ", "");

                                break;
                            }
                        }

                        if (name != string.Empty)
                        {
                            if (latitude != string.Empty)
                            {
                                if (longitude != string.Empty)
                                {
                                    ImpactCraters.Update(folder, name, Helper.SwapQuadrant(latitude), Helper.SwapQuadrant(longitude));
                                }
                            }
                        }
                    }
                }
            }

            reader.Close();
        }
        static public void Read(string txtFileName)
        {
            if (File.Exists(txtFileName))
            {
                try
                {
                    FileStream   stream = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
                    StreamReader reader = new StreamReader(stream, System.Text.Encoding.Unicode);
                    ImpactCrater crater = new ImpactCrater();

                    if (crater != null)
                    {
                        crater.Name       = reader.ReadLine();
                        crater.Location   = reader.ReadLine();
                        crater.Latitude   = reader.ReadLine();
                        crater.Longitude  = reader.ReadLine();
                        crater.Diameter   = reader.ReadLine();
                        crater.Age        = reader.ReadLine();
                        crater.Exposed    = reader.ReadLine();
                        crater.Drilled    = reader.ReadLine();
                        crater.TargetRock = reader.ReadLine();
                        crater.BolideType = reader.ReadLine();

                        string line = null;

                        for (;;)
                        {
                            if ((line = reader.ReadLine()) != null)
                            {
                                crater.AddReferences(line);
                            }
                            else
                            {
                                break;
                            }
                        }

                        ImpactCraters.Add(crater);
                    }

                    reader.Close();
                    stream.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
            }
        }
예제 #3
0
        static private ImpactCrater AssignFromString(string line)
        {
            ImpactCrater crater = new ImpactCrater();

            char []   delimiterChars = { '\t' };
            string [] strings        = line.Split(delimiterChars);
            string [] classes        = { "Confirmed", "Most Probable", "Probable", "Possible", "Improbable", "Rejected", "Proposed" };

            crater.Class               = classes [int.Parse(strings [0]) + 1];
            crater.InheritedClass      = AssignString(strings [1]);
            crater.StructureName       = AssignString(strings [2]);
            crater.CraterField         = AssignString(strings [3]);
            crater.Region              = AssignString(strings [4]);
            crater.Country             = AssignString(strings [5]);
            crater.Continent           = AssignString(strings [6]);
            crater.Latitude            = AssignString(strings [7]);
            crater.Longitude           = AssignString(strings [8]);
            crater.Diameter.FinalRim   = AssignString(strings [9]);
            crater.Diameter.PresentDay = AssignString(strings [10]);
            crater.Diameter.OuterLimitOfDeformation = AssignString(strings [11]);
            crater.Diameter.Diameter  = AssignString(strings [12]);
            crater.Diameter.SQL       = AssignString(strings [13]);
            crater.Ages.Age           = AssignString(strings [14]);
            crater.Ages.Youngest      = AssignString(strings [15]);
            crater.Ages.Best          = AssignString(strings [16]);
            crater.Ages.Oldest        = AssignString(strings [17]);
            crater.Ages.Uncertain     = AssignString(strings [18]);
            crater.Ages.UncertainType = AssignString(strings [19]);
            crater.Overburden         = AssignString(strings [20]);
            crater.PresentWaterDepth  = AssignString(strings [21]);
            crater.Drilled            = AssignString(strings [22]);
            crater.Target             = AssignString(strings [23]);
            crater.TargetWaterDepth   = AssignString(strings [24]);
            crater.Impactor           = AssignString(strings [25]);
            crater.UpdatedOn          = AssignString(strings [26]);
            crater.CompiledBy         = AssignString(strings [27]);

            ImpactCraters.Add(crater);

            crater.AddReferences(strings [28]);

            return(crater);
        }
        private void Open_click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = LastDataDirectory;
            openFileDialog.Filter           = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog.FilterIndex      = 1;
            openFileDialog.RestoreDirectory = true;
            openFileDialog.Multiselect      = true;

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    if (ImpactCraters.CraterArray != null)
                    {
                        ImpactCraters.CraterArray.RemoveRange(0, ImpactCraters.CraterArray.Count - 1);
                    }

                    LastDataDirectory = openFileDialog.FileNames [0];
                    LastDataDirectory = LastDataDirectory.Substring(0, LastDataDirectory.LastIndexOf('\\')) + "\\";

                    for (int index = 0; index < openFileDialog.FileNames.Length; ++index)
                    {
                        if (openFileDialog.OpenFile() != null)
                        {
                            ImpactCraters.Read(openFileDialog.FileNames [index]);
                        }
                    }

                    AddItemsToListView(ImpacterListView);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message);
                }
            }
        }