Beispiel #1
0
        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);
        }
Beispiel #2
0
    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);
    }
Beispiel #3
0
        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);
        }
Beispiel #4
0
    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);
    }
Beispiel #5
0
    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);
    }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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);
    }