public void Updata() { INIFILE INIinfo = new INIFILE(Path, "info.ini"); String URL = GetRoundURL(); HTML.HTML html = new HTML.HTML(URL); List<Hashtable> info = html.GetDFSDocument(); //获取name for (int i = 0; i < info.Count; i++) { Hashtable tmp = info[i]; if ((string)tmp["Type"] == "TAG") if ((string)tmp["Value"] == "option") if (checkURL((string)tmp["value"]) == true) { INIinfo.WriteString("contest", "name", (string)info[i + 1]["Value"]); break; } } //获取DIV信息 DivList.Clear(); int op = 0; bool find = true; while (find) { find = false; for (; op < info.Count && find == false; op++) { Hashtable tmp = info[op]; if ((string)tmp["Type"] == "TAG") if ((string)tmp["Value"] == "a") if ((string)tmp["name"] == "\"problem_stats\"") { DivList.Add(new Div(ID, string.Format("Div{0}", DivList.Count + 1))); int CountTR = 0; for (; op < info.Count && CountTR < 2; op++) { tmp = info[op]; if ((string)tmp["Type"] == "TAG") if ((string)tmp["Value"] == "tr") CountTR++; } int CountTD = 0; for (; op < info.Count && CountTD < 6; op++) { tmp = info[op]; if ((string)tmp["Type"] == "TAG") if ((string)tmp["Value"] == "td") CountTD++; } //获取题目信息 while (true) { tmp = info[op]; if ((string)tmp["Type"] == "TAG" && (string)tmp["Value"] == "tr") { CountTD = 0; for (int i = op + 1; i < info.Count; i++) { tmp = info[i]; if ((string)tmp["Value"] == "td") CountTD++; else if ((string)tmp["Value"] == "tr") break; } if (CountTD != 7) break; Problem problem = new Problem(ID, DivList.Last().Name, (string)info[op +6]["Value"]); String problemids = (string)info[op + 5]["href"]; problem.SetID(problemids.Split('=', '&')[3]); problem.Updata(); op += 21; } else break; } find = true; op--; } } } UpdataComplete = true; Load(); }
public void SetID(string ID) { INIFILE inifile = new INIFILE(Path, "info.ini"); inifile.WriteString("problem", "id", ID); LoadInfo(); }