public static struIncreaseStock ConvertFromString(string str) { var Array = str.Split("\t"); var c = new struIncreaseStock(); c.id = Array[0]; c.PublishTarget = Array[1]; if (Array.Length > 2) { c.IncreaseNumber = Array[2]; } if (Array.Length > 3) { c.IncreaseMoney = Array[3]; } if (Array.Length > 4) { c.FreezeYear = Array[4]; } if (Array.Length > 5) { c.BuyMethod = Array[5]; } return(c); }
static List <struIncreaseStock> GetMultiTarget(HTMLEngine.MyRootHtmlNode root, struIncreaseStock SampleincreaseStock) { var BuyerRule = new TableSearchRule(); BuyerRule.Name = "认购对象"; //"投资者名称","股东名称" BuyerRule.Rule = new string[] { "发行对象", "认购对象", "发行对象名称" }.ToList(); BuyerRule.IsEq = true; var BuyNumber = new TableSearchRule(); BuyNumber.Name = "增发数量"; BuyNumber.Rule = new string[] { "配售股数", "认购数量", "认购股份数" }.ToList(); BuyNumber.IsEq = false; //包含即可 BuyNumber.Normalize = Normalizer.NormalizerStockNumber; var BuyMoney = new TableSearchRule(); BuyMoney.Name = "增发金额"; BuyMoney.Rule = new string[] { "配售金额", "认购金额" }.ToList(); BuyMoney.IsEq = false; //包含即可 BuyMoney.Normalize = Normalizer.NormalizerMoney; var FreezeYear = new TableSearchRule(); FreezeYear.Name = "锁定期"; FreezeYear.Rule = new string[] { "锁定期", "限售期" }.ToList(); FreezeYear.IsEq = false; //包含即可 FreezeYear.Normalize = NormalizerFreezeYear; var Rules = new List <TableSearchRule>(); Rules.Add(BuyerRule); Rules.Add(BuyNumber); Rules.Add(BuyMoney); Rules.Add(FreezeYear); var result = HTMLTable.GetMultiInfo(root, Rules, true); var increaseStocklist = new List <struIncreaseStock>(); foreach (var item in result) { var increase = new struIncreaseStock(); increase.id = SampleincreaseStock.id; increase.BuyMethod = SampleincreaseStock.BuyMethod; increase.PublishTarget = item[0].RawData; if (String.IsNullOrEmpty(increase.PublishTarget)) { continue; } increase.IncreaseNumber = item[1].RawData; increase.IncreaseMoney = item[2].RawData; increase.FreezeYear = item[3].RawData; increaseStocklist.Add(increase); } return(increaseStocklist); }
public string ConvertToString(struIncreaseStock increaseStock) { var record = increaseStock.id + "\t" + increaseStock.PublishTarget + "\t"; record += Normalizer.NormalizeNumberResult(increaseStock.IncreaseNumber) + "\t"; record += Normalizer.NormalizeNumberResult(increaseStock.IncreaseMoney) + "\t"; record += increaseStock.FreezeYear + "\t" + increaseStock.BuyMethod; return(record); }
public List <struIncreaseStock> Extract() { //认购方式 var buyMethod = getBuyMethod(root); //样本 var increaseStock = new struIncreaseStock(); increaseStock.id = Id; increaseStock.BuyMethod = buyMethod; var list = GetMultiTarget(root, increaseStock); return(list); }
internal static string ConvertToString(struIncreaseStock increaseStock) { var record = increaseStock.id + "," + increaseStock.PublishTarget + ","; record += Normalizer.NormalizeNumberResult(increaseStock.IncreaseNumber) + ","; record += Normalizer.NormalizeNumberResult(increaseStock.IncreaseMoney) + ","; if (!String.IsNullOrEmpty(increaseStock.FreezeYear) && increaseStock.FreezeYear.EndsWith("个月")) { increaseStock.FreezeYear = increaseStock.FreezeYear.Replace("个月", ""); } record += increaseStock.FreezeYear + "," + increaseStock.BuyMethod; return(record); }
public static List <struIncreaseStock> Extract(string htmlFileName) { var fi = new System.IO.FileInfo(htmlFileName); Program.Logger.WriteLine("Start FileName:[" + fi.Name + "]"); var root = HTMLEngine.Anlayze(htmlFileName); //公告ID var id = fi.Name.Replace(".html", ""); Program.Logger.WriteLine("公告ID:" + id); //认购方式 var buyMethod = getBuyMethod(root); //样本 var increaseStock = new struIncreaseStock(); increaseStock.id = id; increaseStock.BuyMethod = buyMethod; var list = GetMultiTarget(root, increaseStock); return(list); }
List <struIncreaseStock> GetMultiTarget(HTMLEngine.MyRootHtmlNode root, struIncreaseStock SampleincreaseStock) { var PublishTarget = new TableSearchTitleRule(); PublishTarget.Name = "认购对象"; //"投资者名称","股东名称" PublishTarget.Title = new string[] { "发行对象", "认购对象", "发行对象名称" }.ToList(); PublishTarget.IsTitleEq = true; PublishTarget.IsRequire = true; var IncreaseNumber = new TableSearchTitleRule(); IncreaseNumber.Name = "增发数量"; IncreaseNumber.Title = new string[] { "配售股数", "认购数量", "认购股数", "认购股份数", "发行股份数", "配售数量" }.ToList(); IncreaseNumber.IsTitleEq = false; //包含即可 IncreaseNumber.Normalize = NumberUtility.NormalizerStockNumber; var IncreaseMoney = new TableSearchTitleRule(); IncreaseMoney.Name = "增发金额"; IncreaseMoney.Title = new string[] { "配售金额", "认购金额", "获配金额" }.ToList(); IncreaseMoney.IsTitleEq = false; //包含即可 IncreaseMoney.Normalize = MoneyUtility.Format; var FreezeYear = new TableSearchTitleRule(); FreezeYear.Name = "锁定期"; FreezeYear.Title = new string[] { "锁定期", "限售期" }.ToList(); FreezeYear.IsTitleEq = false; //包含即可 FreezeYear.Normalize = NormalizerFreezeYear; var BuyPrice = new TableSearchTitleRule(); BuyPrice.Name = "价格"; BuyPrice.Title = new string[] { "认购价格", "配售价格", "申购报价" }.ToList(); BuyPrice.IsTitleEq = false; //包含即可 BuyPrice.Normalize = MoneyUtility.Format; var Rules = new List <TableSearchTitleRule>(); Rules.Add(PublishTarget); Rules.Add(IncreaseNumber); Rules.Add(IncreaseMoney); Rules.Add(FreezeYear); Rules.Add(BuyPrice); var result = HTMLTable.GetMultiInfoByTitleRules(root, Rules, true); var increaseStocklist = new List <struIncreaseStock>(); foreach (var item in result) { var increase = new struIncreaseStock(); increase.id = SampleincreaseStock.id; increase.BuyMethod = SampleincreaseStock.BuyMethod; increase.PublishTarget = item[0].RawData; if (String.IsNullOrEmpty(increase.PublishTarget)) { continue; } increase.PublishTarget = increase.PublishTarget.NormalizeTextResult(); increase.IncreaseNumber = item[1].RawData; if (!String.IsNullOrEmpty(increase.IncreaseNumber) && increase.IncreaseNumber.Equals("0")) { continue; } if (!String.IsNullOrEmpty(increase.IncreaseNumber) && increase.IncreaseNumber.Contains("|")) { increase.IncreaseNumber = increase.IncreaseNumber.Split("|").Last(); } increase.IncreaseMoney = item[2].RawData; if (!String.IsNullOrEmpty(increase.IncreaseMoney) && increase.IncreaseMoney.Equals("0")) { continue; } if (!String.IsNullOrEmpty(increase.IncreaseMoney) && increase.IncreaseMoney.Contains("|")) { increase.IncreaseMoney = increase.IncreaseMoney.Split("|").Last(); } //手工计算金额 if (String.IsNullOrEmpty(increase.IncreaseMoney)) { if (!String.IsNullOrEmpty(increase.IncreaseNumber)) { if (!String.IsNullOrEmpty(item[4].RawData)) { double price; if (double.TryParse(item[4].RawData, out price)) { double number; if (double.TryParse(increase.IncreaseNumber, out number)) { double money = price * number; if (!Program.IsMultiThreadMode) { Program.Logger.WriteLine("通过计算获得金额:" + money.ToString()); } } } } } } increase.FreezeYear = item[3].RawData; increaseStocklist.Add(increase); } return(increaseStocklist); }