/// <summary> /// 处理票_001 /// </summary> /// <param name="suanJiangClass"></param> private void ChuLiValue9005(SuanJiangClass suanJiangClass) { //2016/6/25 17:44:55 //RSP|160625103=3,160625110=1|2*1 //HH|SPF>160625113=3,SPF>160625119=3,RSP>160625101=0,RSP>160625104=3,RSP>160625112=0,SPF>160625116=3,SPF>160625122=3|7*1 //SPF>160625102=1(4.10),RSP>160625103=1(4.05)/0(1.42),RSP>160625104=1(3.96),RSP>160625106=1(3.45)/0(2.40),RSP>160625108=1(3.50) //SPF>160625102=3(1.55),SPF>160625107=1(3.20),RSP>160625101=0(1.63),RSP>160625104=3(1.64),RSP>160625112=0(1.63),SPF>160625116=3(1.94),SPF>160625122=3(1.50) List <Dictionary <string, string> > lis = new List <Dictionary <string, string> >(); string chuanGuanShu = string.Empty; try { chuanGuanShu = Regex.Match(suanJiangClass.TouZhu, @".+?\|(\d+\*\d+)").Groups[1].Value; if (string.IsNullOrWhiteSpace(chuanGuanShu)) { Log.WriteLog(suanJiangClass.BuyTitckID + "的串关未截取到", "Error"); } List <string> listValue = suanJiangClass.TouZhuValue.Split(',').ToList(); for (int i = 0; i < listValue.Count; i++) { MatchCollection matchTitck = Regex.Matches(listValue[i], @"([A-Z]+)>(\d{6})(\d+)=(.+)"); foreach (Match item in matchTitck) { string redy = string.Empty; if (item.Success) { Titck_GeShi titck_GeShi = new Titck_GeShi(); titck_GeShi.Titck_PlayEnglish = item.Groups[1].Value; titck_GeShi.Titck_DateTime = item.Groups[2].Value; titck_GeShi.Titck_SaiShi = item.Groups[3].Value; titck_GeShi.Titck_ContentString = item.Groups[4].Value; //string dataTxt = ParesDate(item.Groups[2].Value); //suanJiangClass.CreateTime.AddDays(1).ToString("yyyy-MM-dd"); using (StreamReader streamRead = new StreamReader(theTxtPath + "/" + item.Groups[2].Value + ".txt", Encoding.GetEncoding("utf-8"))) { redy = streamRead.ReadToEnd();//缓存内容 } lis.Add(SplitTitckValue(titck_GeShi, redy)); } } } } catch (Exception error) { Log.WriteLog(suanJiangClass.BuyTitckID + "投注赔率匹配失败:" + error, "Error"); } //SPF>160625102=1(4.10),RSP>160625103=1(4.05)/0(1.42),RSP>160625104=1(3.96),RSP>160625106=1(3.45)/0(2.40),RSP>160625108=1(3.50) GetZhongJianTitck(lis, chuanGuanShu, suanJiangClass); lis.Clear(); }
/// <summary> /// 处理票_002 /// </summary> /// <param name="titck_GeShi"></param> /// <param name="redy"></param> private Dictionary <string, string> SplitTitckValue(Titck_GeShi titck_GeShi, string redy) { //2016/6/25 17:44:55 //RSP|160625103=3,160625110=1|2*1 //HH|SPF>160625113=3,SPF>160625119=3,RSP>160625101=0,RSP>160625104=3,RSP>160625112=0,SPF>160625116=3,SPF>160625122=3|7*1 //SPF>160625102=1(4.10),RSP>160625103=1(4.05)/0(1.42),RSP>160625104=1(3.96),RSP>160625106=1(3.45)/0(2.40),RSP>160625108=1(3.50) //SPF>160625102=3(1.55),SPF>160625107=1(3.20),RSP>160625101=0(1.63),RSP>160625104=3(1.64),RSP>160625112=0(1.63),SPF>160625116=3(1.94),SPF>160625122=3(1.50) string joinDate = titck_GeShi.Titck_DateTime.Substring(0, 2) + "/" + titck_GeShi.Titck_DateTime.Substring(2, 2) + "/" + titck_GeShi.Titck_DateTime.Substring(4, 2); string dayOfWeek = theDateStr + joinDate; switch (DateTime.Parse(dayOfWeek).DayOfWeek.ToString()) { case "Monday": dayOfWeek = "周一"; break; case "Tuesday": dayOfWeek = "周二"; break; case "Wednesday": dayOfWeek = "周三"; break; case "Thursday": dayOfWeek = "周四"; break; case "Friday": dayOfWeek = "周五"; break; case "Saturday": dayOfWeek = "周六"; break; case "Sunday": dayOfWeek = "周日"; break; default: break; } dayOfWeek += titck_GeShi.Titck_SaiShi; string partValue = Regex.Match(redy.Replace("\r\n", ""), "<td>" + dayOfWeek + "</td>(.+?)</tr>").Groups[1].Value; string bf = string.Empty; string spf = string.Empty; string rqspf = string.Empty; string zjqs = string.Empty; string bqc = string.Empty; if (!string.IsNullOrWhiteSpace(partValue)) { //比分 bf = GetBF(Regex.Match(partValue, "<td class=\"[a-zA-z]+\">\\((.+?)\\) (.+?)</td>").Groups[2].Value); //让球胜平负 rqspf = GetSPF(Regex.Match(partValue, "<td>([\u4e00-\u9fa5]{1})</td>").Groups[1].Value); //胜平负 spf = GetSPF(Regex.Match(partValue, "<td class=\"[a-zA-z]+\">([\u4e00-\u9fa5]{1})</td>").Groups[1].Value); //总进球数 zjqs = Regex.Match(partValue, "<td class=\"[a-zA-z]+\">(\\d+(\\+)*)</td>").Groups[1].Value; //半全场 bqc = GetBQC(Regex.Match(partValue, "<td class=\"[a-zA-z]+\">([\u4e00-\u9fa5]{2})</td>").Groups[1].Value); } Dictionary <string, string> dir = new Dictionary <string, string>(); switch (titck_GeShi.Titck_PlayEnglish) { case "SPF": List <string> titckString_spf = titck_GeShi.Titck_ContentString.Split('/').ToList(); for (int i = 0; i < titckString_spf.Count; i++) { string str1 = Regex.Match(titckString_spf[i], @"(\d)\(\d+.\d+\)").Groups[1].Value; string str2 = Regex.Match(titckString_spf[i], @"(\d)\((\d+.\d+)\)").Groups[2].Value; if (spf == str1) { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + spf, str2); } else { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + str1, "No"); } } break; case "RSP": List <string> titckString_rsf = titck_GeShi.Titck_ContentString.Split('/').ToList(); for (int i = 0; i < titckString_rsf.Count; i++) { string str1 = Regex.Match(titckString_rsf[i], @"(\d)\(\d+.\d+\)").Groups[1].Value; string str2 = Regex.Match(titckString_rsf[i], @"(\d)\((\d+.\d+)\)").Groups[2].Value; if (rqspf == str1) { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + rqspf, str2); } else { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + str1, "No"); } } break; case "JQS": List <string> titckString_jqs = titck_GeShi.Titck_ContentString.Split('/').ToList(); for (int i = 0; i < titckString_jqs.Count; i++) { string str1 = Regex.Match(titckString_jqs[i], @"(\d+)\(\d+.\d+\)").Groups[1].Value; string str2 = Regex.Match(titckString_jqs[i], @"(\d+)\((\d+.\d+)\)").Groups[2].Value; if (zjqs == str1) { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + zjqs, str2); } else { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + str1, "No"); } } break; case "BQC": List <string> titckString_bqc = titck_GeShi.Titck_ContentString.Split('/').ToList(); for (int i = 0; i < titckString_bqc.Count; i++) { string str1 = Regex.Match(titckString_bqc[i], @"(\d+\-\d+)\(\d+.\d+\)").Groups[1].Value; string str2 = Regex.Match(titckString_bqc[i], @"(\d+\-\d+)\((\d+.\d+)\)").Groups[2].Value; if (bqc == str1) { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + bqc, str2); } else { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + str1, "No"); } } break; case "CBF": List <string> titckString_bf = titck_GeShi.Titck_ContentString.Split('/').ToList(); for (int i = 0; i < titckString_bf.Count; i++) { string str1 = Regex.Match(titckString_bf[i], @"(\d+:\d+|[\u4e00-\u9fa5]+)\(\d+.\d+\)").Groups[1].Value; string str2 = Regex.Match(titckString_bf[i], @"(\d+:\d+|[\u4e00-\u9fa5]+)\((\d+.\d+)\)").Groups[2].Value; if (bf == str1) { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + bf, str2); } else { dir.Add(titck_GeShi.Titck_PlayEnglish + ">" + titck_GeShi.Titck_DateTime + titck_GeShi.Titck_SaiShi + "F" + i + "=" + str1, "No"); } } break; default: break; } //SPF>160625102=1(4.10),RSP>160625103=1(4.05)/0(1.42),RSP>160625104=1(3.96),RSP>160625106=1(3.45)/0(2.40),RSP>160625108=1(3.50) return(dir); }