// // 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); } } }
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); } } }