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; }
public void downloadLZHFiles(List<string> lstDates, JRDBMember jrdbMem, string appPath) { try{ StringBuilder sb = new StringBuilder(); string strDownLoadFolder = sb.Append(appPath).Append("\\temp").ToString(); if(Directory.Exists(strDownLoadFolder) == false) Directory.CreateDirectory(strDownLoadFolder); sb.Clear(); WebClient wc = new WebClient(); wc.Credentials = new NetworkCredential(jrdbMem.UserID, jrdbMem.PassWord); for (int i = 0; i < lstDates.Count; i++) { sb.Append(strKYLzhUrl).Append(strKYFilePrefix).Append(lstDates[i]).Append(".lzh"); string strDLKYFileURL = sb.ToString(); sb.Clear(); sb.Append(appPath).Append("\\temp\\").Append(strKYFilePrefix).Append(lstDates[i]).Append(".lzh"); string strDLKYFile = sb.ToString(); sb.Clear(); sb.Append(strCYLzhUrl).Append(strCYFilePrefix).Append(lstDates[i]).Append(".lzh"); string strDLCYFileURL = sb.ToString(); sb.Clear(); sb.Append(appPath).Append("\\temp\\").Append(strCYFilePrefix).Append(lstDates[i]).Append(".lzh"); string strDLCYFile = sb.ToString(); sb.Clear(); wc.DownloadFile(strDLKYFileURL, strDLKYFile); wc.DownloadFile(strDLCYFileURL, strDLCYFile); } wc.Dispose(); } catch (Exception e) { string s = e.Message; } }
/// <summary> /// 「接続テスト」ボタン押下時処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnCheckPass_Click(object sender, EventArgs e) { txtCheck.Text = ""; JRDBMember Member = new JRDBMember(); Member.UserID = txtUserID.Text; Member.PassWord = mtxtPassWord.Text; JRDBConnect con = new JRDBConnect(); if (con.IsMemCheck(Member)) { txtCheck.Text = "接続成功!"; } else { txtCheck.Text = "接続失敗・・・"; } }
/// <summary> /// 「印を取得」ボタン押下時処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGetMarks_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; int StartIdx = this.cmbStartDate.SelectedIndex; int EndIdx = this.cmbEndDate.SelectedIndex; settings = settings.ReadTmarkXML(Application.StartupPath); if ((StartIdx < EndIdx) || (StartIdx == -1) || (EndIdx == -1)) { this.Cursor = Cursors.Default; MessageBox.Show("開始日付、終了日付が正しく設定されていません。"); } else { // 選択された日付リストを取得する for (int i = EndIdx; i <= StartIdx; i++) { lstSelectedDates.Add(lstDates[i]); } JRDBMember jrdbMem = new JRDBMember(); jrdbMem.UserID = settings.UserID; jrdbMem.PassWord = settings.PassWord; JRDBConnect con = new JRDBConnect(); JRDBtoTFJV j2t = new JRDBtoTFJV(); // 指定範囲の日付のJRDBファイルをダウンロードする。 con.downloadLZHFiles(lstSelectedDates, jrdbMem, Application.StartupPath); // ダウンロードしたファイルを解凍する。 j2t.LzhExtract(lstSelectedDates, Application.StartupPath ); // JRDBから馬印ファイルへ抽出する。 j2t.JRDBFile2Umashirushi(lstSelectedDates,Application.StartupPath , settings ); // 作業フォルダを削除する Directory.Delete(Application.StartupPath + "\\temp" , true ); this.Cursor = Cursors.Default; MessageBox.Show("処理が終了しました。"); } }
/// <summary> /// 「日付取得」ボタン押下時処理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSetDates_Click(object sender, EventArgs e) { settings = settings.ReadTmarkXML(Application.StartupPath); JRDBMember jrdbMem = new JRDBMember(); jrdbMem.UserID = settings.UserID; jrdbMem.PassWord = settings.PassWord; JRDBConnect con = new JRDBConnect(); if (con.IsMemCheck(jrdbMem)) { lstDates = con.getDataDates(jrdbMem); for(int i = 0; i < lstDates.Count; i++) { this.cmbStartDate.Items.Add(lstDates[i]); this.cmbEndDate.Items.Add(lstDates[i]); } this.btnGetMarks.Enabled = true; } else { MessageBox.Show("JRDBのユーザーID、パスワードを設定してください。"); } }
/// <summary> /// JRDBの会員かどうかチェックする関数 /// </summary> /// <param name="jrdbMem">JRDBメンバークラス</param> /// <returns>True:JRDB会員である False:JRDB会員でない</returns> public bool IsMemCheck(JRDBMember jrdbMem) { bool ret = false ; try { //HttpWebRequestの作成 HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(strCheckUrl); //認証の設定 webreq.Credentials = new NetworkCredential(jrdbMem.UserID , jrdbMem.PassWord); //HttpWebResponseの取得 HttpWebResponse webres = (HttpWebResponse)webreq.GetResponse(); //受信して表示 System.IO.Stream st = webres.GetResponseStream(); if (st != null) { ret = true; } //閉じる st.Close(); } catch(Exception e) { string s = e.Message; ret = false; } return ret; }