// 辞書を作成する static void CreateDictionary(string dictfile, string flag) { if (System.IO.File.Exists(dictfile)) { StreamReader sr = new StreamReader(dictfile, Encoding.GetEncoding("utf-8")); string line; Regex reg1 = new Regex("^;.*|^$"); Regex reg2 = new Regex("\\s+;.*"); while ((line = sr.ReadLine()) != null) { Match m = reg1.Match(line); if (m.Success == false) { string line2 = reg2.Replace(line, ""); string[] pair = line2.Split(' ', '/', '\n'); string[] pairs = new string[2]; if (flag == "car") { pairs[0] = pair[0]; pairs[1] = pair[2]; } else { pairs[0] = pair[2]; pairs[1] = pair[0]; } LIST.Add(pairs); } } sr.Close(); } else { Form2 f = new Form2(); f.ShowDialog(); f.Dispose(); } }
private void button3_Click(object sender, EventArgs e) { //form2.Location = new Point(this.Location.X+100,this.Location.Y+150); // zhj.修改输入路径判空条件 if (inPath.Length == 0) { MessageBox.Show("Please select a DEM file"); return; } /*if (inPath == null) { MessageBox.Show("Please select a DEM file"); return; }*/ if (outPath == null) { MessageBox.Show("Output path can not be empty!"); return; } if (radioButton_nodata_repair_no.Checked) { xiufu = false;//修复无值栅格 } //if (radioButton1.Checked) //{ // guodu = true; //}//2010.01.05修改,以前没有else语句,存在问题 //else //{ // guodu = false; //} if (radioButton_fill_min.Checked) { fillWay = false; } //2010.6.8改,无须选择单位了 //if (radioButton_mul_dir.Checked) //{ // unit = false; //} //if (radioButton7.Checked) //{ // unit = true; //} if (radioButton_channel_no.Checked) { //CumulatWay = false; Channel_Consider = false; threshold = 0; } else { //CumulatWay = true; Channel_Consider = true; threshold = Convert.ToSingle(textBox_threshold.Text);//2011.04.20目前只有D8和MS多流向的方法中涉及到了河网的问题 } if (radioButton_cutoff_no.Checked) { flowcut = false; } else { flowcut = true; } if (radioButton_sinkfill_no.Checked) { fillsink = false; } else { fillsink = true; } if (radioButton_Cumulated_Max.Checked) { CumulatWay = true; } else { CumulatWay = false; } if (radioButton_model_CSLE.Checked) { RUSLE_CSLE = 1;//CSLE } else { RUSLE_CSLE = 0;//RUSLE } button_start.Enabled = false; qianzhui = textBox_profix.Text; xiaoyu5 = float.Parse(textBox_cutoff_slopeless.Text); dayu5 = float.Parse(textBox_cutoff_slopegreat.Text); form2 = new Form2(); form2.progressTextBox.Text = "OK"; // zhj.开始计算 for (int fileCount = 0; fileCount < inPath.Length; ++fileCount) { GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); string form2Title = "正在计算 Calculating: " + (fileCount) + "/" + inPath.Length + " missions are completed"; form2.Text = form2Title; //form2.progressTextBox form2.progressBar.Value = 0; form2.progressBar.Maximum = 28; form2.progressTextBox.Update(); form2.Owner = this; //form2.StartPosition = this.StartPosition; form2.StartPosition = FormStartPosition.CenterScreen; form2.Show(); //2010.06.06添加单流向及多流向的选择 //string tempOutPath = outPath; //string tempQianZhui = ""; string tempOutPath = outPath; string tempQianZhui = outDir[fileCount]; try { //tempOutPath += ("\\" + outDir[fileCount]); //tempOutPath += DateTime.Now.ToString(" yyyy_MM_dd HH_mm_ss"); //Directory.CreateDirectory(tempOutPath); if (radioButton_flowdir_mul.Checked) { if (radioButton_Mul_MS.Checked) { LS_MultDir_MSClass lsClass = new LS_MultDir_MSClass(); //lsClass.LSBegin(inPath, outPath, qianzhui, xiufu, xiaoyu5, dayu5, unit, fillWay, flowcut, fillsink, threshold, ExportAll, MyCheckBox, this); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, flowcut, fillsink, threshold, CumulatWay, RUSLE_CSLE, Channel_Consider, ExportAll, MyCheckBox, this); lsClass = null; } else if (radioButton_Mul_FMFD.Checked) { LS_MultDir_FMFDClass lsClass = new LS_MultDir_FMFDClass(); // 显示一个窗口 lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, flowcut, fillsink, ExportAll, MyCheckBox, float.Parse(textBox_slope_exp.Text), this); lsClass = null; } else if (radioButton_Mul_DEMON.Checked) { LS_MultDir_DEMONClass lsClass = new LS_MultDir_DEMONClass(); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, CumulatWay, ExportAll, MyCheckBox, this); lsClass = null; } else { LS_MultDir_PilesjClass lsClass = new LS_MultDir_PilesjClass(); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, CumulatWay, ExportAll, MyCheckBox, this); lsClass = null; } } else { if (radioButton_Sgn_D8.Checked) { LS_SingleDir_D8Class lsClass = new LS_SingleDir_D8Class(); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, flowcut, fillsink, threshold, CumulatWay, RUSLE_CSLE, Channel_Consider, ExportAll, MyCheckBox, this); //导入路径、输出路径、前缀、是否修复、小于5%、大于5%、单位、填充方式、是否截断、是否进行洼地填充、阈值、是否考虑河网、哪一个模型、是否所有都输出、输出的复选框选择 lsClass = null; } else if (radioButton_Sgn_Rho4.Checked) { LS_SingleDir_Rho4Class lsClass = new LS_SingleDir_Rho4Class(); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, CumulatWay, ExportAll, MyCheckBox, this); lsClass = null; } else if (radioButton_Sgn_Rho8.Checked) { LS_SingleDir_Rho8Class lsClass = new LS_SingleDir_Rho8Class(); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, CumulatWay, ExportAll, MyCheckBox, this); lsClass = null; } else if (radioButton_Sgn_Rho.Checked) { LS_SingleDir_RhoClass lsClass = new LS_SingleDir_RhoClass(); lsClass.LSBegin(inPath[fileCount], tempOutPath, tempQianZhui, xiufu, xiaoyu5, dayu5, unit, fillWay, CumulatWay, ExportAll, MyCheckBox, this); lsClass = null; }//以上是单流向,以下是多流向 } } catch (Exception ex) { MessageBox.Show("物理内存空间不足,无法完成计算!" + ex.ToString(), "异常", MessageBoxButtons.OK, MessageBoxIcon.Error); form2.Close(); form2.Dispose(); } } form2.Text = "全部文件计算完成(All missions are completed)"; form2.button_form2_ok.Visible = true; //form2.Dispose(); button_start.Enabled = false; textBox_outputpath.Text = ""; textBox_inputpath.Text = ""; // 清空路径数组 inPath = null; outPath = null; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }
private void 環境設定ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f = new Form2(); f.ShowDialog(this); f.Dispose(); }