高鹏写的winform抓取页面,根据配置文件配置读取地址

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Threading;
using System.Collections;
using System.Web;
using System.Text.RegularExpressions;

namespace LotteryGame
{
    public partial class Form1 : Form
    {
        //private static HTMLDocument document;
        private static Hashtable ViewState = new Hashtable();

        public Form1()
        {
            InitializeComponent();
            this.timer1.Interval = this.GetTimerInterval();
            timer1.Start();
            timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
            button1.Click += new EventHandler(button1_Click);
        }

        void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            GetHhad_List();
            GetCrs_List();
            GetTtg_List();
            GetHafu_List();
            GetMnl_List();
            GetHdc_List();
            GetWnm_List();
            GetHilo_List();
        }

        void button1_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            this.Close();
        }

        private double GetTimerInterval()
        {
            double d = 600000;
            string path = AppDomain.CurrentDomain.BaseDirectory + "properties";
            FileInfo file = new FileInfo(path);
            if (file.Exists)
            {
                StreamReader sr = new StreamReader(path, Encoding.Default, true);
                string str = sr.ReadLine();
                string[] args = str.Split('=');
                if (args.Length != 0)
                {
                    if (args[0] == "timer.Interval")
                    {
                        d = Convert.ToDouble(args[1]);
                    }
                }
            }
            return d;
        }
        public string GetAppConfig(string key)
        {
            return System.Configuration.ConfigurationSettings.AppSettings[key];
        }

        private void GetHhad_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameFootballSoccerWDL"), GetAppConfig("footballSoccerWDL"), "FootballSoccerWDL");
        }
        private void GetCrs_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameFootballScores"), GetAppConfig("footballScores"), "FootballScores");
        }
        private void GetTtg_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameFootballTotalballNum"), GetAppConfig("footballTotalballNum"), "FootballTotalballNum");
               
        }
        private void GetHafu_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameFootballhalfWholeMatch"), GetAppConfig("footballhalfWholeMatch"), "FootballhalfWholeMatch");
           
        }
        private void GetMnl_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameBasketballWL"), GetAppConfig("basketballWL"), "BasketballWL");
        }
        private void GetHdc_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameBasketballHandicap"), GetAppConfig("basketballHandicap"), "BasketballHandicap");
        }
        private void GetWnm_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameBasketballWinScoreDiffer"), GetAppConfig("basketballWinScoreDiffer"), "BasketballWinScoreDiffer");
        }
        private void GetHilo_List()
        {
            while (!this.IsHandleCreated)
            {
                ;
            }
            this.WriteHtml(GetAppConfig("fileNameBasketballBigSmallScore"), GetAppConfig("basketballBigSmallScore"), "BasketballBigSmallScore");
        }
        public string GetUrlHtml(string url)
        {
            string str = "";
           try
            {
                WebRequest wrq = WebRequest.Create(url);
                WebResponse wrs = wrq.GetResponse();
                Stream stream = wrs.GetResponseStream();
                StreamReader sr = new StreamReader(stream, Encoding.Default, true);
                str = sr.ReadToEnd();
                sr.Close();
                stream.Close();
                wrs.Close();
               
            }
            catch {
                throw new Exception();
            }
           return str;
        }

        public  string GetHtml(string url, string template)
        {
            string str = "nohtml";
            string tstr = template;
            try
            {
                str = GetUrlHtml(url);
                while (!str.Contains("</html>"))
                {
                    Thread.Sleep(10000);
                    str = GetUrlHtml(url);
                }
            }
            catch {
                return str;
            }
            int topStrStartIndex = tstr.IndexOf("<div class=/"mainBody/">");
            int topStrEndIndex = tstr.IndexOf("</html>");
            if (topStrStartIndex == -1)
            {
                topStrStartIndex = tstr.IndexOf("<div class=/"mainBody/" style=/"height:605px;/">");
                if (topStrEndIndex != -1 && topStrStartIndex != -1)
                {
                    tstr = tstr.Remove(topStrStartIndex + "<div class=/"mainBody/" style=/"height:605px;/">".Length, topStrEndIndex + "</html>".Length - topStrStartIndex - +"<div class=/"mainBody/" style=/"height:605px;/">".Length);
                }
            }
            else if (topStrEndIndex != -1)
            {
                tstr = tstr.Remove(topStrStartIndex + "<div class=/"mainBody/">".Length, topStrEndIndex + "</html>".Length - topStrStartIndex - +"<div class=/"mainBody/">".Length);
            }
            //int topStrStartIndex = tstr.IndexOf("<div class=/"mainBody/">");
            //int topStrEndIndex = tstr.IndexOf("</html>");
            //if (topStrEndIndex != -1)
            //    tstr = tstr.Remove(topStrStartIndex + "<div class=/"mainBody/">".Length, topStrEndIndex + "</html>".Length - topStrStartIndex - +"<div class=/"mainBody/">".Length);

            int nowPageStartIndex = str.IndexOf("<font color=/"#cc0000/">");
            int nowPageEndIndex = str.IndexOf("</div>", nowPageStartIndex);
            string nowPage = str.Substring(nowPageStartIndex, nowPageEndIndex + "</div>".Length - nowPageStartIndex);
            int refreshTimeStartIndex = str.IndexOf("<div class=/"navRight/">");
            int refreshTimeEndIndex = str.IndexOf("<a href=", refreshTimeStartIndex);
            string refreshTime = str.Substring(refreshTimeStartIndex, refreshTimeEndIndex + "<a href=".Length - refreshTimeStartIndex);
            tstr = tstr.Replace("<font color=/"#cc0000/">当前页</div>", nowPage);
            tstr = tstr.Replace("<div class=/"navRight/">数据更新时间<a href=", refreshTime);
            //int delStrStartIndex1 = str.IndexOf("<!DOCTYPE");
            int delStrStartIndex1 = 0;
            int delStrEndIndex1 = str.IndexOf("<div class=/"mainBody/">", delStrStartIndex1);
            if (delStrEndIndex1 == -1)
            {
                delStrEndIndex1 = str.IndexOf("<div class=/"mainBody/" style=/"height:605px;/">", delStrStartIndex1);
                str = str.Remove(delStrStartIndex1, delStrEndIndex1 + "<div class=/"mainBody/" style=/"height:605px;/">".Length - delStrStartIndex1);
            }
            else
            {
                str = str.Remove(delStrStartIndex1, delStrEndIndex1 + "<div class=/"mainBody/">".Length - delStrStartIndex1);
            }
            string jsString1 = "<script language=/"javascript/" type=/"text/javascript/" src=/"http://info.sporttery.cn/MXN/function.js/"></script>";
            string jsString2 = "<script language=/"javascript/" type=/"text/javascript/" src=/"http://info.sporttery.cn/MXN/IO.Script.js/"></script>";
            string jsString3 = "<script language=/"javascript/" type=/"text/javascript/" src=/"mxn/list_function.js/"></script>";
            int urlStartIndex = -1;
            int urlEndIndex = -1;
            urlStartIndex = str.IndexOf("<a href='http://info.sporttery.cn");
            if (urlStartIndex == -1)
            {
                while (true)
                {
                    urlStartIndex = str.IndexOf("<a href=/"http://info.sporttery.cn");
                    if (urlStartIndex != -1)
                        urlEndIndex = str.IndexOf("target=/"_blank/">", urlStartIndex);
                    else
                        break;
                    string urlStr = str.Substring(urlStartIndex, urlEndIndex + "target=/"_blank/">".Length - urlStartIndex);
                    str = str.Replace(urlStr, "<a href=/"javascript:void(0)/" target=/"_blank/">");
                }
            }
            else
            {
                while(true)
                {
                    urlStartIndex = str.IndexOf("<a href='http://info.sporttery.cn");
                    if (urlStartIndex != -1)
                        urlEndIndex = str.IndexOf("target='_blank'>", urlStartIndex);
                    else
                        break;
                    string urlStr = str.Substring(urlStartIndex, urlEndIndex + "target='_blank'>".Length - urlStartIndex);
                    str = str.Replace(urlStr, "<a href=/"javascript:void(0)/" target=/"_blank/">");
                }
            }
            string footString1 = "<div class=/"downPart/">";
            string footTargetString1 = "<div class=/"downPart/" style=/"display:none/">";
            string footString2 = "<div><script type=/"text/javascript/" src=/"http://www.sporttery.cn/iframe/js/stdfooter.js/"></script></div>";
            str = str.Replace("<input class=/"ipt/" id=/"multiple/" name=/"multiple/" value=/"1/" type=/"text/" style=/"height:13px;width:55px;/" />", "<input name=/"multiple/" id=/"multiple/" runat=/"server/" size=/"3/" class=/"ipt/" style=/"width: 55px; height: 13px/" type=/"text/" value=/"1/" onkeyup=/"if(isNaN(value)||event.keyCode==32){execCommand('undo');}else{mChanged();}/" onafterpaste=/"if(isNaN(value)||event.keyCode==32){execCommand('undo');}else{mChanged();}/">");
            str = str.Replace(jsString1, "");
            str = str.Replace(jsString2, "");
            str = str.Replace(jsString3, "");

            if (url == "http://info.sporttery.cn/lotterygame/hdc_list.php" || url == "http://info.sporttery.cn/lotterygame/mnl_list.php")
                str = str.Replace("<div class=/"mainRight/">", "</div><div class=/"mainRight/">");

            int imgDivStartIndex = str.IndexOf("<div style=/"text-align:center;/">");
            int imgDivEndIndex = str.IndexOf("</div>", imgDivStartIndex);
            string imgDiv = str.Substring(imgDivStartIndex, imgDivEndIndex + "</div>".Length - imgDivStartIndex);
            str = str.Replace(imgDiv, "<div style=/"text-align:center;/"><asp:ImageButton CssClass=/"img/" ImageUrl=/"../images/comfirmbet.gif/" ID=/"ImageButton1/" runat=/"server/" OnClientClick=/"IsHaveMoney()/" /></div>");
            //添加隐藏域
            Regex regex1 = new Regex(@"n/d{3}");
            MatchCollection mc = regex1.Matches(str);
            for (int i = 0; i < mc.Count; i++)
            {
                int index = str.IndexOf(mc[i].Value + "/">");
                if(index != -1)
                    str = str.Replace(mc[i].Value + "/">", mc[i].Value + "/"><input type=/"hidden/" id=/"d" + mc[i].Value + "/" runat=/"server/" />");
                else
                    str = str.Replace("<td id=/"" + mc[i].Value + "/" style=/"display:none/">", "<td id=/"" + mc[i].Value + "/" style=/"display:none/"><input type=/"hidden/" id=/"d" + mc[i].Value + "/" runat=/"server/" />");
            }
            //添加日期
            Regex regex2 = new Regex("runat=/"server/" />周[/u4e00-/u9fa5]");
            MatchCollection mc2 = regex2.Matches(str);
            int flag = 0;
            for (int j = 0; j < mc2.Count; j++)
            {
                if (mc2[j].Value == GetToday())
                    flag = j;
            }
            for (int m = 0; m < mc2.Count; m++)
            {
                if(m<flag)
                    str = str.Replace(mc2[m].Value, GetDateTime(mc2[m].Value, -7));
                else
                    str = str.Replace(mc2[m].Value, GetDateTime(mc2[m].Value, 0));
            }

            str = str.Replace(footString1, footTargetString1);
            str = str.Replace(footString2, "");
           
            string shtml = tstr + " " + str;
            return shtml;
        }
        public string GetDateTime(string dayStr, int index)
        {
            string returnDateTime = "";
            DateTime date = DateTime.Now;
            string dayOfWeek = date.DayOfWeek.ToString();
            switch (dayOfWeek)
            {
                case "Sunday":
                    switch(dayStr)
                    {
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                    }
                    break;
                case "Monday":
                    switch (dayStr)
                    {
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                       
                    }
                    break;
                case "Tuesday":
                    switch (dayStr)
                    {
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                       
                    }
                    break;
                case "Wednesday":
                    switch (dayStr)
                    {
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                       
                    }
                    break;
                case "Thursday":
                    switch (dayStr)
                    {
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                       
                    }
                    break;
                case "Friday":
                    switch (dayStr)
                    {
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                       
                    }
                    break;
                case "Saturday":
                    switch (dayStr)
                    {
                        case "runat=/"server/" />周六":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.ToString("yyyy-MM-dd") + "/"/>周六";
                            break;
                        case "runat=/"server/" />周日":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(1 + index).ToString("yyyy-MM-dd") + "/"/>周日";
                            break;
                        case "runat=/"server/" />周一":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(2 + index).ToString("yyyy-MM-dd") + "/"/>周一";
                            break;
                        case "runat=/"server/" />周二":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(3 + index).ToString("yyyy-MM-dd") + "/"/>周二";
                            break;
                        case "runat=/"server/" />周三":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(4 + index).ToString("yyyy-MM-dd") + "/"/>周三";
                            break;
                        case "runat=/"server/" />周四":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(5 + index).ToString("yyyy-MM-dd") + "/"/>周四";
                            break;
                        case "runat=/"server/" />周五":
                            returnDateTime = "runat=/"server/" value=/"" + DateTime.Now.AddDays(6 + index).ToString("yyyy-MM-dd") + "/"/>周五";
                            break;
                       
                    }
                    break;
            }
            return returnDateTime;
        }
        public string GetToday()
        {
            string todayStr = "";
            DateTime date = DateTime.Now;
            string dayOfWeek = date.DayOfWeek.ToString();
            switch (dayOfWeek)
            {
                case "Sunday":
                    todayStr = "runat=/"server/" />周日";
                    break;
                case "Monday":
                    todayStr = "runat=/"server/" />周一";
                    break;
                case "Tuesday":
                    todayStr = "runat=/"server/" />周二";
                    break;
                case "Wednesday":
                    todayStr = "runat=/"server/" />周三";
                    break;
                case "Thursday":
                    todayStr = "runat=/"server/" />周四";
                    break;
                case "Friday":
                    todayStr = "runat=/"server/" />周五";
                    break;
                case "Saturday":
                    todayStr = "runat=/"server/" />周六";
                    break;
            }
            return todayStr;
        }
        public void WriteHtml(string fileName, string url, string templateName)
        {
            string template = "";
            switch (templateName)
            {
                case "FootballSoccerWDL":
                    template = FootballSoccerWDL;
                    break;
                case "FootballScores":
                    template = FootballScores;
                    break;
                case "FootballTotalballNum":
                    template = FootballTotalballNum;
                    break;
                case "FootballhalfWholeMatch":
                    template = FootballhalfWholeMatch;
                    break;
                case "BasketballWL":
                    template = BasketballWL;
                    break;
                case "BasketballHandicap":
                    template = BasketballHandicap;
                    break;
                case "BasketballWinScoreDiffer":
                    template = BasketballWinScoreDiffer;
                    break;
                case "BasketballBigSmallScore":
                    template = BasketballBigSmallScore;
                    break;
            }
            string shtml = this.GetHtml(url, template);
            if (shtml != "nohtml")
            {
                if (!shtml.Equals(template))
                {
                    string path = GetAppConfig("savePath") + fileName + GetAppConfig("fileNameSufix");
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        file.Delete();
                    }
                    StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default);
                    sw.WriteLine(shtml);
                    sw.Close();
                    switch (templateName)
                    {
                        case "FootballSoccerWDL":
                            if (FootballSoccerWDL.Contains("</html>"))
                                Backup(GetAppConfig("fileNameFootballSoccerWDL"), FootballSoccerWDL);
                            ViewState["FootballSoccerWDL"] = shtml;
                            break;
                        case "FootballScores":
                            if (FootballScores.Contains("</html>"))
                                Backup(GetAppConfig("fileNameFootballScores"), FootballScores);
                            ViewState["FootballScores"] = shtml;
                            break;
                        case "FootballTotalballNum":
                            if (FootballTotalballNum.Contains("</html>"))
                                Backup(GetAppConfig("fileNameFootballTotalballNum"), FootballTotalballNum);
                            ViewState["FootballTotalballNum"] = shtml;
                            break;
                        case "FootballhalfWholeMatch":
                            if (FootballhalfWholeMatch.Contains("</html>"))
                                Backup(GetAppConfig("fileNameFootballhalfWholeMatch"), FootballhalfWholeMatch);
                            ViewState["FootballhalfWholeMatch"] = shtml;
                            break;
                        case "BasketballWL":
                            if (BasketballWL.Contains("</html>"))
                                Backup(GetAppConfig("fileNameBasketballWL"), BasketballWL);
                            ViewState["BasketballWL"] = shtml;
                            break;
                        case "BasketballHandicap":
                            if (BasketballHandicap.Contains("</html>"))
                                Backup(GetAppConfig("fileNameBasketballHandicap"), BasketballHandicap);
                            ViewState["BasketballHandicap"] = shtml;
                            break;
                        case "BasketballWinScoreDiffer":
                            if (BasketballWinScoreDiffer.Contains("</html>"))
                                Backup(GetAppConfig("fileNameBasketballWinScoreDiffer"), BasketballWinScoreDiffer);
                            ViewState["BasketballWinScoreDiffer"] = shtml;
                            break;
                        case "BasketballBigSmallScore":
                            if (BasketballBigSmallScore.Contains("</html>"))
                                Backup(GetAppConfig("fileNameBasketballBigSmallScore"), BasketballBigSmallScore);
                            ViewState["BasketballBigSmallScore"] = shtml;
                            break;
                    }
                }
            }
        }
        public void Backup(string backupFileName, string template)
        {
            string timestr = "";
            string str = DateTime.Now.ToString("yyyy-MM-dd-HH-mm");
            string[] args = str.Split('-');
            timestr = args[0] + args[1] + args[2] + args[3] + args[4];
            string path = GetAppConfig("backupPath") + timestr + backupFileName + GetAppConfig("fileNameSufix");
            FileInfo file = new FileInfo(path);
            if (file.Exists)
            {
                file.Delete();
            }
            StreamWriter sw = new StreamWriter(path, true, System.Text.Encoding.Default);
            sw.WriteLine(template);
            sw.Close();
        }

        public string FootballSoccerWDL
        {
            get {
                Object o = ViewState["FootballSoccerWDL"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/FootballSoccerWDL.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["FootballSoccerWDL"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少足球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string FootballScores
        {
            get {
                Object o = ViewState["FootballScores"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/FootballScores.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["FootballScores"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少足球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string FootballTotalballNum
        {
            get {
                Object o = ViewState["FootballTotalballNum"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/FootballTotalballNum.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["FootballTotalballNum"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少足球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string FootballhalfWholeMatch
        {
            get {
                Object o = ViewState["FootballhalfWholeMatch"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/FootballhalfWholeMatch.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["FootballhalfWholeMatch"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少足球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string BasketballWL
        {
            get {
                Object o = ViewState["BasketballWL"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/BasketballWL.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["BasketballWL"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少篮球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string BasketballHandicap
        {
            get {
                Object o = ViewState["BasketballHandicap"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/BasketballHandicap.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["BasketballHandicap"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少篮球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string BasketballWinScoreDiffer
        {
            get {
                Object o = ViewState["BasketballWinScoreDiffer"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/BasketballWinScoreDiffer.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["BasketballWinScoreDiffer"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少篮球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
        public string BasketballBigSmallScore
        {
            get {
                Object o = ViewState["BasketballBigSmallScore"];
                if (o != null)
                    return Convert.ToString(o);
                else
                {
                    string str = "";
                    string path = AppDomain.CurrentDomain.BaseDirectory + "template/BasketballBigSmallScore.aspx";
                    FileInfo file = new FileInfo(path);
                    if (file.Exists)
                    {
                        StreamReader sr = new StreamReader(path, Encoding.Default);
                        str = sr.ReadToEnd();
                        ViewState["BasketballBigSmallScore"] = str;
                        return str;
                    }
                    else
                    {
                        MessageBox.Show("缺少篮球类模板,请添加后运行程序!");
                        this.Close();
                        return "";
                    }
                }
            }
        }
    }
}
配置文件 App.config

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <!--save-->
    <add key="savePath" value="E:/work/savePath/"/>
    <add key="backupPath" value="E:/work/backupPath/"/>
    <add key="fileNameFootballSoccerWDL" value="FootballSoccerWDL"/>
    <add key="fileNameFootballScores" value="FootballScores"/>
    <add key="fileNameFootballTotalballNum" value="FootballTotalballNum"/>
    <add key="fileNameFootballhalfWholeMatch" value="FootballhalfWholeMatch"/>
    <add key="fileNameBasketballWL" value="BasketballWL"/>
    <add key="fileNameBasketballHandicap" value="BasketballHandicap"/>
    <add key="fileNameBasketballWinScoreDiffer" value="BasketballWinScoreDiffer"/>
    <add key="fileNameBasketballBigSmallScore" value="BasketballBigSmallScore"/>
    <add key="fileNameSufix" value=".aspx"/>
    <!--url-->
    <add key="footballSoccerWDL" value="http://info.sporttery.cn/lotterygame/hhad_list.php"/>
    <add key="footballScores" value="http://info.sporttery.cn/lotterygame/crs_list.php"/>
    <add key="footballTotalballNum" value="http://info.sporttery.cn/lotterygame/ttg_list.php"/>
    <add key="footballhalfWholeMatch" value="http://info.sporttery.cn/lotterygame/hafu_list.php"/>
    <add key="basketballWL" value="http://info.sporttery.cn/lotterygame/mnl_list.php"/>
    <add key="basketballHandicap" value="http://info.sporttery.cn/lotterygame/hdc_list.php"/>
    <add key="basketballWinScoreDiffer" value="http://info.sporttery.cn/lotterygame/wnm_list.php"/>
    <add key="basketballBigSmallScore" value="http://info.sporttery.cn/lotterygame/hilo_list.php"/>
  </appSettings>
</configuration>

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值