public MdiParents() { InitializeComponent(); //콤보박스초기화 fnInitComb(); //패널에 폼 올리기 fnOpenChild((Form)VS); mIsPanel1Visible = Convert.ToString(Network.ReadIniFile("btnVisible", "YN", @".\setting.ini")) == "Y" ? true : false; }
/// 서버랑 비교해서 옛 버전이면 다운. private void fnFTPDownSync() { //현재 로컬과 서버의 업로드 날짜를 비교. 서버의 업로드 날짜가 더 크면 다운 DateTime dtLocalFileDate; mServerVerDate = fnReadVer(out mFtpCon); //ftp 연결이 안되어있을 경우 빠져나오자. if (!mFtpCon) { return; } try { dtLocalFileDate = DateTime.ParseExact(Convert.ToString(Network.ReadIniFile("FileTouchDate", "Date", @".\setting.ini")), "yyyyMMddHHmmss", null); } catch { dtLocalFileDate = new DateTime(1, 1, 1); } if (dtLocalFileDate < mServerVerDate) { if (MessageBox.Show("서버의 파일이 최신입니다.\r\n최신버전으로 동기화 하시겠습니까?", "파일 동기화", MessageBoxButtons.YesNo) == DialogResult.Yes) { //기존 파일은 백업. try { File.Copy(@".\Contents.db", @".\Contents_Bak.db", true); } catch (Exception e) { MessageBox.Show("파일 백업 중 오류 : " + e.ToString()); } string strResult = Network.FtpDown(mAddress, mID, mPW, "Contents.db"); if (strResult != "") { MessageBox.Show(strResult); } //동기화를 성공했을 경우, 다운 받은 날짜의 정보를 setting.ini에 저장해둔다. upload시에 비교하여 동기화여부를 결정하는데 사용한다. else { Network.WriteIniFile("FileTouchDate", "Date", mServerVerDate.ToString("yyyyMMddHHmmss"), @".\setting.ini"); } } } }
// 전역변수 초기화 하기(IP,ID,PW,Option) private void fnInitVar() { //디비연결 string strResult = String.Empty; string strSQL = String.Empty; bool isSync = true; strSQL = @" SELECT IP AS IP , ID AS ID , PW AS PW FROM FTP;"; //FTP만 하드코딩하자! V로 가져와버리면 안되니까! SQLiteConnection Conn = new SQLiteConnection(@"Data Source = .\Contents.db"); DataSet ds = new DataSet(); Conn.Open(); SQLiteDataAdapter Ap = new SQLiteDataAdapter(strSQL, Conn); Ap.Fill(ds); Ap.Dispose(); Conn.Dispose(); if (ds.Tables[0].Rows.Count == 0) { mAddress = ""; mID = ""; mPW = ""; } else { mAddress = ds.Tables[0].Rows[0]["IP"].ToString(); mID = ds.Tables[0].Rows[0]["ID"].ToString(); mPW = ds.Tables[0].Rows[0]["PW"].ToString(); } if (strResult != "") { MessageBox.Show("서버db를 가져오는 중 오류발생 : \r\n" + strResult); } //옵션가져오기(SyncYN) isSync = Network.ReadIniFile("OPTION", "SyncYN", @".\setting.ini") == "N" ? false : true; mSyncYN = isSync; }
private void fnInitCon() { chkSync.Checked = Network.ReadIniFile("OPTION", "SyncYN", @".\setting.ini") == "N" ? false : true; string strFirstScreen = Network.ReadIniFile("OPTION", "FirstScreen", @".\setting.ini"); if (strFirstScreen == "C") { rdoCurrent.Checked = true; } else if (strFirstScreen == "I") { rdoInterest.Checked = true; } else { rdoMainMemo.Checked = true; } }
static void Main() { int LocX = 0; int LocY = 0; int Width = 433; int Height = 266; try { LocX = Convert.ToInt16(Network.ReadIniFile("LocStockCalc", "X", @".\setting.ini")); LocY = Convert.ToInt16(Network.ReadIniFile("LocStockCalc", "Y", @".\setting.ini")); Width = Convert.ToInt16(Network.ReadIniFile("SizeMain", "Width", @".\setting.ini")); Height = Convert.ToInt16(Network.ReadIniFile("SizeMain", "Height", @".\setting.ini")); } catch {} if (LocX > SystemInformation.VirtualScreen.Width || LocY > SystemInformation.VirtualScreen.Height || LocX < 0 || LocY < 0) { LocX = 0; LocY = 0; } if (Width > SystemInformation.VirtualScreen.Width || Height > SystemInformation.VirtualScreen.Height || Width < 0 || Height < 0) { Width = 433; Height = 266; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); MdiParents Mdi = new MdiParents(); Mdi.StartPosition = FormStartPosition.Manual; Mdi.Location = new Point(LocX, LocY); Mdi.Size = new System.Drawing.Size(Width, Height); Application.Run(Mdi); }
//Load이벤트 private void Hold_Load(object sender, EventArgs e) { string strFirstScreen = Network.ReadIniFile("OPTION", "FirstScreen", @".\setting.ini"); if (strFirstScreen == "C") { labHold_Click(null, null); } else if (strFirstScreen == "I") { labInterest_Click(null, null); } else { labMainMemo_Click(null, null); } fnPopupInit(); }
//지금은 로드이벤트에 담았지만, 나중엔 그냥 탭 클릭으로 넘겨야할 듯. private void mInitControl() { string strTabPage = Network.ReadIniFile("SelectedDetailTab", "PageName", @".\setting.ini"); TabDetail.SelectedTab = null; if (strTabPage == "tabPrice") { TabDetail.SelectedTab = tabPrice; } else if (strTabPage == "tabVol") { TabDetail.SelectedTab = tabVol; } else if (strTabPage == "tabSto") { TabDetail.SelectedTab = tabSto; } else { TabDetail.SelectedIndex = 0; } }
//Selected Stochastic private void mfnSelectedStochastic() { string strStoF = Network.ReadIniFile("Chart:Stochastic", "Fast", @".\setting.ini"); string strStoS = Network.ReadIniFile("Chart:Stochastic", "Slow", @".\setting.ini"); int iBeforeDate = mfnStringToInt(txtBeforeDate.Text); if (strStoF == "") { strStoF = "10,5,E"; } if (strStoS == "") { strStoS = "10,5,5,E"; } txtStoFInput1.Text = (strStoF.Split(','))[0]; txtStoFInput2.Text = (strStoF.Split(','))[1]; txtStoSInput1.Text = (strStoS.Split(','))[0]; txtStoSInput2.Text = (strStoS.Split(','))[1]; txtStoSInput3.Text = (strStoS.Split(','))[2]; string strAvgTypeF = strStoF.Split(',')[2]; string strAvgTypeS = strStoS.Split(',')[3]; mfnStoCboBind(cboStoF, strAvgTypeF); mfnStoCboBind(cboStoS, strAvgTypeS); int iFast1 = Convert.ToInt16(txtStoFInput1.Text.ToString()); int iFast2 = Convert.ToInt16(txtStoFInput2.Text.ToString()); int iSlow1 = Convert.ToInt16(txtStoSInput1.Text.ToString()); int iSlow2 = Convert.ToInt16(txtStoSInput2.Text.ToString()); int iSlow3 = Convert.ToInt16(txtStoSInput3.Text.ToString()); double dStoFShowK = mfnGetStoFastK(iFast1, iBeforeDate); double dStoFShowD = strAvgTypeF == "S" ? mfnGetSmaStoFastD(iFast1, iFast2, iBeforeDate) : mfnGetEmaStoFastD(iFast1, iFast2, iBeforeDate); double dStoFShowKBefore = mfnGetStoFastK(iFast1, iBeforeDate + 1); double dStoFShowDBefore = strAvgTypeF == "S" ? mfnGetSmaStoFastD(iFast1, iFast2, iBeforeDate + 1) : mfnGetEmaStoFastD(iFast1, iFast2, iBeforeDate + 1); double dStoSShowK = strAvgTypeS == "S" ? mfnGetSmaStoFastD(iSlow1, iSlow2, iBeforeDate) : mfnGetEmaStoFastD(iSlow1, iSlow2, iBeforeDate); double dStoSShowD = strAvgTypeS == "S" ? mfnGetSmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate) : mfnGetEmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate); double dStoSShowKBefore = strAvgTypeS == "S" ? mfnGetSmaStoFastD(iSlow1, iSlow2, iBeforeDate + 1) : mfnGetEmaStoFastD(iSlow1, iSlow2, iBeforeDate + 1); double dStoSShowDBefore = strAvgTypeS == "S" ? mfnGetSmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate + 1) : mfnGetEmaStoSlowD(iSlow1, iSlow2, iSlow3, iBeforeDate + 1); txtStoFShowK.Text = dStoFShowK.ToString("0.##"); txtStoFShowD.Text = dStoFShowD.ToString("0.##"); txtStoFShowKBefore.Text = dStoFShowKBefore.ToString("0.##"); txtStoFShowDBefore.Text = dStoFShowDBefore.ToString("0.##"); txtStoSShowK.Text = dStoSShowK.ToString("0.##"); txtStoSShowD.Text = dStoSShowD.ToString("0.##"); txtStoSShowKBefore.Text = dStoSShowKBefore.ToString("0.##"); txtStoSShowDBefore.Text = dStoSShowDBefore.ToString("0.##"); txtDiffFast.Text = (dStoFShowK - dStoFShowD).ToString("0.##"); txtDiffFastBefore.Text = (dStoFShowKBefore - dStoFShowDBefore).ToString("0.##"); txtDiffSlow.Text = (dStoSShowK - dStoSShowD).ToString("0.##"); txtDiffSlowBefore.Text = (dStoSShowKBefore - dStoSShowDBefore).ToString("0.##"); mfnTxtStoColorChg(dStoFShowK, dStoFShowD, txtStoFShowK); mfnTxtStoColorChg(dStoFShowKBefore, dStoFShowDBefore, txtStoFShowKBefore); mfnTxtStoColorChg(dStoSShowK, dStoSShowD, txtStoSShowK); mfnTxtStoColorChg(dStoSShowKBefore, dStoSShowDBefore, txtStoSShowKBefore); mfnTxtStoColorChg(dStoFShowK, dStoFShowD, txtDiffFast); mfnTxtStoColorChg(dStoFShowKBefore, dStoFShowDBefore, txtDiffFastBefore); mfnTxtStoColorChg(dStoSShowK, dStoSShowD, txtDiffSlow); mfnTxtStoColorChg(dStoSShowKBefore, dStoSShowDBefore, txtDiffSlowBefore); }
/// 서버랑 비교해서 로컬이 최신이면 업로드. 프로그램 종료 시. private void fnFTPUpSync() { //파일을 수정했으면 날짜를 기록 if (mMD5 != Network.GetMD5(@".\Contents.db")) { Network.WriteIniFile("FileTouchDate", "Date", fnGetFileDate(@".\Contents.db").ToString("yyyyMMddHHmmss"), @".\setting.ini"); } //ftp연결이 안되어있을 경우 빠져나오자. if (!mFtpCon) { return; } DateTime dtTouchDate = DateTime.ParseExact(Convert.ToString(Network.ReadIniFile("FileTouchDate", "Date", @".\setting.ini")), "yyyyMMddHHmmss", null); //처음 파일날짜와 비교해서 변경이 있을 경우 //&& 서버의 날짜보다 더 최신일 경우(다른 클라가 업로드한 경우도 있으므로 체크한다) 업로드 한다. if (dtTouchDate > mServerVerDate || mServerVerDate.Year == 1) { if (MessageBox.Show("로컬의 파일이 최신입니다.\r\n서버에 업로드 하시겠습니까?", "파일 동기화", MessageBoxButtons.YesNo) == DialogResult.Yes) { /* 업로드 전 서버에 백업 */ // 3이 있으면 지우고, 2가 있으면 3으로, 1이 있으면 2로, 원본만 있으면 1로 string strRe = ""; strRe = Network.FtpDel(mAddress, mID, mPW, "Contents_Bak3.db"); if (strRe != "") { MessageBox.Show(strRe); MessageBox.Show("업로드 실패"); return; } strRe = Network.FtpRename(mAddress, mID, mPW, "Contents_Bak2.db", "Contents_Bak3.db"); if (strRe != "") { MessageBox.Show(strRe); MessageBox.Show("업로드 실패"); return; } strRe = Network.FtpRename(mAddress, mID, mPW, "Contents_Bak1.db", "Contents_Bak2.db"); if (strRe != "") { MessageBox.Show(strRe); MessageBox.Show("업로드 실패"); return; } strRe = Network.FtpRename(mAddress, mID, mPW, "Contents.db", "Contents_Bak1.db"); if (strRe != "") { MessageBox.Show(strRe); MessageBox.Show("업로드 실패"); return; } string strResult = Network.FtpUp(mAddress, mID, mPW, "Contents.db"); if (strResult != "") { MessageBox.Show(strResult); } //동기화를 성공했을 경우 서버에 날짜 올림 else { fnWriteVer(dtTouchDate.ToString("yyyyMMddHHmmss")); strResult = Network.FtpUp(mAddress, mID, mPW, "ver.ps"); if (strResult != "") { MessageBox.Show("ver.ps 업로드 실패 : " + strResult); } } } } }