Example #1
0
 public void Read(string filename)
 {
     using (StreamReader reader = new StreamReader(filename))
     {
         string       line   = string.Empty;
         ConvertPaper paper  = null;
         string       field  = string.Empty;
         string       prefix = string.Empty;
         while ((line = reader.ReadLine()) != null)
         {
             if (line.Contains("题名:"))
             {
                 paper       = new ConvertPaper();
                 paper.Title = line.Substring("题名:".Length).Trim();
             }
             if (line.Contains("作者:"))
             {
                 paper.Author = line.Substring("作者:".Length).Trim();
             }
             if (line.Contains("单位:"))
             {
                 paper.Institutes = line.Substring("单位:".Length).Trim().Split(';').ToList <string>();
             }
             if (line.Contains("关键词:"))
             {
                 paper.Keywords = line.Substring("关键词:".Length).Trim();
             }
             if (line.Contains("来源:"))
             {
                 paper.Source = line.Substring("来源:".Length).Trim();
                 string[] splits = paper.Source.Split(',');
                 paper.Year = splits[1].Trim();
                 Match match = regYear.Match(paper.Year);
                 if (match.Success)
                 {
                     paper.Year = match.Value;
                 }
             }
             if (line.Contains("被引频次:"))
             {
                 int cites = 0;
                 int.TryParse(line.Substring("被引频次:".Length).Trim(), out cites);
                 paper.TotalCites = cites;
                 cache.Add(paper);
                 paper = null;
             }
         }
         reader.Close();
     }
 }
Example #2
0
 public void Read(string filename)
 {
     using (StreamReader reader = new StreamReader(filename))
     {
         string       line   = string.Empty;
         ConvertPaper paper  = null;
         string       field  = string.Empty;
         string       prefix = string.Empty;
         while ((line = reader.ReadLine()) != null)
         {
             if (line.Contains("【文件序号】"))
             {
                 paper = new ConvertPaper();
                 paper.AccessionNumber = line.Substring(6).Trim();
             }
             if (line.Contains("【来源篇名】"))
             {
                 paper.Title = line.Substring(6).Trim();
             }
             if (line.Contains("【来源作者】"))
             {
                 paper.Author = line.Substring(6).Trim();
             }
             if (line.Contains("【关 键 词】"))
             {
                 paper.Keywords = line.Substring("【关 键 词】".Length).Trim();
             }
             if (line.Contains("【机构名称】"))
             {
                 paper.Institutes.Add(line.Substring(6).Trim());
             }
             if (line.Contains("【期    刊】"))
             {
                 paper.Source = line.Substring("【期    刊】".Length).Trim();
             }
             if (line.Contains("【年代卷期】"))
             {
                 paper.Volume = line.Substring("【年代卷期】".Length).Trim();
                 paper.Year   = line.Substring("【年代卷期】".Length, 4).Trim();
             }
             if (line.Contains("----"))
             {
                 cache.Add(paper);
                 paper = null;
             }
         }
         reader.Close();
     }
 }
Example #3
0
        /// <summary>
        /// 读取数据进入缓存
        /// </summary>
        /// <param name="filename"></param>
        public void Read(string filename)
        {
            using (StreamReader reader = new StreamReader(filename))
            {
                string       line   = string.Empty;
                ConvertPaper paper  = null;
                string       field  = string.Empty;
                string       prefix = string.Empty;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Length == 0)
                    {
                        continue;
                    }
                    prefix = line.Substring(0, 2);
                    if (prefix == "  ")
                    {
                        prefix = field;
                    }
                    switch (prefix)
                    {
                    case "PT":
                        paper = new ConvertPaper();
                        break;

                    case "TI":
                        field        = "TI";
                        paper.Title += line.Substring(3) + " ";
                        break;

                    case "AU":
                        field          = "AU";
                        paper.Author_ += "; " + line.Substring(3).Trim();
                        paper.Author_Count++;
                        break;

                    case "AF":
                        field         = "AF";
                        paper.Author += "; " + line.Substring(3);
                        paper.AuthorCount++;
                        break;

                    case "DE":
                        field           = "DE";
                        paper.Keywords += " " + line.Substring(3);
                        break;

                    case "ID":
                        field            = "ID";
                        paper.Keywords_ += " " + line.Substring(3);
                        break;

                    case "SO":
                        field        = "SO";
                        paper.Source = line.Substring(3).Trim();
                        break;

                    case "C1":
                        field = "C1";
                        paper.Institutes.Add(line.Substring(3));
                        break;

                    case "Z9":
                        field = "Z9";
                        int cites = 0;
                        int.TryParse(line.Substring(3).Trim(), out cites);
                        paper.Cites = cites;
                        break;

                    case "TC":
                        field = "TC";
                        int totalcites = 0;
                        int.TryParse(line.Substring(3).Trim(), out totalcites);
                        paper.TotalCites = totalcites;
                        paper.isCite     = true;
                        break;

                    case "PY":
                        field      = "PY";
                        paper.Year = line.Substring(3).Trim();
                        break;

                    case "VL":
                        field        = "VL";
                        paper.Volume = line.Substring(3).Trim();
                        break;

                    case "IS":
                        field       = "IS";
                        paper.Issue = line.Substring(3).Trim();
                        break;

                    case "AR":
                        field = "AR";
                        paper.ArticleNumber = line.Substring(3).Trim();
                        break;

                    case "DI":
                        field     = "DI";
                        paper.Doi = line.Substring(3).Trim();
                        break;

                    case "BP":
                        field           = "BP";
                        paper.BeginPage = line.Substring(3).Trim();
                        break;

                    case "EP":
                        field         = "EP";
                        paper.EndPage = line.Substring(3).Trim();
                        break;

                    case "CT":
                        field = "CT";
                        paper.ConferenceTitle += line.Substring(3).Trim() + " ";
                        break;

                    case "CL":
                        field = "CL";
                        paper.ConferenceAddress += line.Substring(3).Trim() + " ";
                        break;

                    case "CY":
                        field = "CY";
                        paper.ConferenceDate += line.Substring(3).Trim() + " ";
                        break;

                    case "UT":
                        field = "UT";
                        paper.AccessionNumber += line.Substring(3).Trim() + " ";
                        break;

                    case "ER":
                        if (!string.IsNullOrEmpty(paper.Author))
                        {
                            paper.Author = paper.Author.Substring(1);
                        }
                        else if (!string.IsNullOrEmpty(paper.Author_))
                        {
                            paper.Author      = paper.Author_.Substring(1);
                            paper.AuthorCount = paper.Author_Count;
                        }
                        if (!string.IsNullOrEmpty(paper.Keywords))
                        {
                            paper.Keywords = paper.Keywords.Substring(1);
                        }
                        else if (!string.IsNullOrEmpty(paper.Keywords_))
                        {
                            paper.Keywords = paper.Keywords_.Substring(1);
                        }
                        cache.Add(paper);
                        break;

                    default:
                        field = "";
                        break;
                    }
                }
                reader.Close();
            }
        }
Example #4
0
        public void Read(string filename)
        {
            using (StreamReader reader = new StreamReader(filename))
            {
                string       line   = string.Empty;
                ConvertPaper paper  = null;
                string       field  = string.Empty;
                string       prefix = string.Empty;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.Contains("Accession number:"))
                    {
                        paper = new ConvertPaper();
                        paper.AccessionNumber = line.Substring("Accession number:".Length).Trim();
                    }
                    if (line.Contains("Title:"))
                    {
                        paper.Title = line.Substring("Title:".Length).Trim();
                    }
                    if (line.Contains("Authors:"))
                    {
                        paper.Author = line.Substring("Authors:".Length).Trim();
                        if (!string.IsNullOrEmpty(paper.Author))
                        {
                            string[] authors = paper.Author.Split(';');
                            if (authors != null)
                            {
                                paper.AuthorCount = authors.Length;
                            }
                        }
                    }
                    if (line.Contains("Author affiliation:"))
                    {
                        string institutes = line.Substring("Author affiliation:".Length).Trim();
                        //机构需要根据 (1)这种标记匹配
                        MatchCollection matches  = regSplitor.Matches(institutes);
                        List <string>   splitors = new List <string>();
                        foreach (Match match in matches)
                        {
                            splitors.Add(match.Value);
                        }

                        //string[] _institutes = institutes.Split(';');
                        string[] _institutes = institutes.Split(splitors.ToArray(), StringSplitOptions.RemoveEmptyEntries);
                        for (int index = 0; index < _institutes.Length; index++)
                        {
                            _institutes[index] = "(" + (index + 1) + ")" + _institutes[index];
                        }
                        List <string> instituteslist = new List <string>();
                        if (_institutes != null && _institutes.Length > 0)
                        {
                            for (int index = 0; index < _institutes.Length; index++)
                            {
                                if (_institutes[index].Trim().Length > 0)
                                {
                                    string temp = _institutes[index].Trim();
                                    paper.Institutes.Add(temp.Trim());
                                }
                            }
                        }
                    }

                    if (line.Contains("Source title:"))
                    {
                        paper.Source = line.Substring("Source title:".Length).Trim();
                    }
                    if (line.Contains("Volume:"))
                    {
                        paper.Volume = line.Substring("Volume:".Length).Trim();
                    }
                    if (line.Contains("Issue:"))
                    {
                        paper.Issue = line.Substring("Issue:".Length).Trim();
                    }
                    if (line.Contains("Pages:"))
                    {
                        paper.BeginPage = line.Substring("Pages:".Length).Trim();
                    }
                    if (line.Contains("Publication year:"))
                    {
                        paper.Year = line.Substring("Publication year:".Length).Trim();
                    }
                    if (line.Contains("DOI:"))
                    {
                        paper.Doi = line.Substring("DOI:".Length).Trim();
                    }
                    if (line.Contains("Compilation and indexing terms"))
                    {
                        cache.Add(paper);
                    }
                }
                reader.Close();
            }
        }