Exemplo n.º 1
0
        /// <summary>
        /// 值是否相等
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            AbbItem o = obj as AbbItem;

            if (o == null)
            {
                return(false);
            }

            return(MakerName.Equals(o.MakerName));
        }
Exemplo n.º 2
0
        /// <summary>
        /// KARR 50139M001           KARR     KA     Added by SR updabb
        /// KAYT                     KAYT     KY     Added by SR updabb
        /// </summary>
        /// <param name="line"></param>
        /// <returns></returns>
        public static AbbItem ParseLine(string line)
        {
            AbbItem item = new AbbItem();

            item.MakerName   = line.Substring(0, 4);
            item.MakerNumber = line.Substring(5, 11).Trim();
            item.Id4         = line.Substring(25, 4);
            item.Id2         = line.Substring(34, 2);
            item.Remark      = line.Substring(41).Trim();
            return(item);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 添加一个子项,如果已经存在,则不添加。
 /// 若添加,还要保证ID2没有重复。
 /// </summary>
 /// <param name="key"></param>
 public void Add(AbbItem item)
 {
     if (!Items.Contains(item))
     {
         if (Items.Find(m => m.Id2 == item.Id2) != null)
         {
             item.Id2 = AbbItem.GenId2(Items, item.MakerName);
         }
         Items.Add(item);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// 从文件中读取。
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static AbbFile Parse(string path)
        {
            using (StreamReader reader = new StreamReader(path))
            {
                AbbFile file = new AbbFile();
                file.Items = new List <AbbItem>();
                string line  = null;
                int    count = 0;
                while ((line = reader.ReadLine()) != null)
                {
                    count++;
                    if (count < 6)
                    {
                        continue;
                    }

                    AbbItem item = AbbItem.ParseLine(line);
                    file.Items.Add(item);
                }
                return(file);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 解析字符串。
        /// </summary>
        /// <param name="txt"></param>
        /// <returns></returns>
        public static AbbFile ParseText(string txt)
        {
            String[] lines = txt.Split(new char[] { '\r', '\n' },
                                       StringSplitOptions.RemoveEmptyEntries);
            AbbFile file = new AbbFile();

            file.Items = new List <AbbItem>();
            int count = 0;

            foreach (var line in lines)
            {
                count++;
                if (count < 6)
                {
                    continue;
                }

                AbbItem item = AbbItem.ParseLine(line);
                file.Items.Add(item);
            }
            return(file);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 从包含O文件的文件夹中提取。
        /// </summary>
        /// <param name="oDir"></param>
        /// <returns></returns>
        public static AbbFile CreateFromODir(string oDir)
        {
            AbbFile file = new AbbFile();

            file.Items = new List <AbbItem>();
            string[] files = Directory.GetFiles(oDir, Setting.RinexOFileFilter);

            foreach (var item in files)
            {
                Data.Rinex.RinexObsFileHeader h = new Data.Rinex.RinexObsFileReader(item).GetHeader();
                //判断是否已经存在。
                string makerName = StringUtil.FillZero(h.SiteInfo.SiteName.ToUpper(), 4).Substring(0, 4);
                if (file.Items.Find(m => m.MakerName == makerName) != null)
                {
                    continue;
                }

                AbbItem sta = new AbbItem(makerName, h.SiteInfo.MarkerNumber, file.Items);

                file.Items.Add(sta);
            }
            return(file);
        }