public List<string> getDataDates(JRDBMember jrdbMem) { string anchor = "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>"; JPString jpString = new JPString(); WebClient wc = new WebClient(); wc.Credentials = new NetworkCredential(jrdbMem.UserID, jrdbMem.PassWord ); string html = wc.DownloadString(strCheckUrl); Regex re = new Regex(anchor, RegexOptions.IgnoreCase | RegexOptions.Singleline); List<string> lst = new List<string>(); for (Match m = re.Match(html); m.Success; m = m.NextMatch()) { string strChk = m.Groups["text"].Value; if (strChk.Length == 13) { lst.Add(jpString.CutStr(strChk, 3, 6)); } } return lst; }
/// <summary> /// 同じ馬印ファイルに出力する、JRDB競走馬データのレコードリストから、馬印ファイルに出力する処理 /// </summary> /// <param name="lstData">変換先馬印ファイルが同じ、JRDB競走馬データのリスト</param> /// <param name="tfjvShirushiPath">馬印ファイル出力先パス</param> /// <param name="MarkKind">出力する馬印の種類</param> private void InsertJRDBKYRecToSameShirushi(List<JRDBKYdata> lstData, string tfjvShirushiPath, string MarkKind) { // 出力先馬印ファイル名(フルパス)を設定 string TFJVShirushiFileName = tfjvShirushiPath + lstData[0].TFJVMarkFileName; FileInfo fio = new FileInfo(TFJVShirushiFileName); // 1レース毎の馬印レコード string[] RaceMark = new string[MAX_RACE_DAY * MAX_RACE_COUNT]; JPString jpString = new JPString(); if (fio.Exists == false) { for (int i = 0; i < RaceMark.Length ; i++) { RaceMark[i] = " "; // 先頭の6文字(別で使用する) // ファイル新規作成に付き、1レース当たりの最大頭数分のマークを初期設定する for (int j = 0; j < 18 ; j++) { RaceMark[i] += " "; } } } else { // 既存馬印ファイルの各レコードを呼び出す StreamReader sr = new StreamReader(TFJVShirushiFileName, Encoding.GetEncoding("shift_jis")); for (int i = 0; sr.EndOfStream == false; i++) { RaceMark[i] = sr.ReadLine(); } sr.Close(); } for (int i = 0; i < lstData.Count; i++) { // レース開催日・レース番号から出力先馬印ファイルの行数を設定する int RaceMarkLineNo = (int.Parse(lstData[i].Day) - 1) * MAX_RACE_COUNT + int.Parse(lstData[i].RaceNo); // 馬番から出力先馬印ファイルの行の何byte目かを設定 int RaceMarkLineByte = 6 + (int.Parse(lstData[i].HorseNo) - 1) * 2; // 変更する出力先馬印ファイルのレース開催日・レース番号に対応する馬印レコードを設定 string chengeRaceMarkLine = RaceMark[RaceMarkLineNo - 1]; string strChgdMark = ""; switch(MarkKind){ case "11": strChgdMark = lstData[i].SougouMark; break; case "12": strChgdMark = lstData[i].IDMMark; break; case "13": strChgdMark = lstData[i].JyohoMark; break; case "14": strChgdMark = lstData[i].KishuMark; break; case "15": strChgdMark = lstData[i].KyushaMark; break; case "16": strChgdMark = lstData[i].ChokyoMark; break; case "17": strChgdMark = lstData[i].GekisouMark; break; case "18": strChgdMark = lstData[i].TenkaiMark; break; case "19": strChgdMark = lstData[i].TenkaiKigo; break; case "20": strChgdMark = lstData[i].MankenMark; break; case "21": strChgdMark = lstData[i].ChokyoYajirushi; break; case "22": strChgdMark = lstData[i].KyushaHyoka; break; default: strChgdMark = " "; break; } RaceMark[RaceMarkLineNo - 1] = jpString.CutStr(chengeRaceMarkLine , 0 , RaceMarkLineByte ) + strChgdMark + jpString.CutStr(chengeRaceMarkLine, RaceMarkLineByte + 2 ,jpString.ByteLength(chengeRaceMarkLine) - (RaceMarkLineByte + 2)); StreamWriter sw = new StreamWriter(TFJVShirushiFileName, false, Encoding.GetEncoding("shift_jis")); for (int j = 0; j < RaceMark.Length; j++) { sw.WriteLine(RaceMark[j]); } sw.Close(); } }