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