Example #1
0
        /// <summary>
        /// 点击查重清洗模块
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cbb_format3_SelectedIndexChanged(object sender, EventArgs e)
        {
            //获得格式信息,再规则信息设置中打勾
            string     formatName = cbb_format3.Text;
            FormatInfo myfi       = new FormatInfo(formatName);

            myfi.GetFormatInfo();
            SelectRules(myfi._formatSet, dgv_chachong);
        }
Example #2
0
        /// <summary>
        /// 切换内容解析模块下的格式名称时触发的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cbb_format5_SelectedIndexChanged(object sender, EventArgs e)
        {
            //获得格式信息,再规则信息设置中打勾
            string     formatName = cbb_format5.Text;
            FormatInfo myfi       = new FormatInfo(formatName);

            myfi.GetFormatInfo();
            SelectRules(myfi._formatSet);
            //加载保存路径
            tb_savepath5.Text = myfi._savePath;
            //加载路径选择框
            cb_yuanwenjianjia5.Checked    = myfi._yuanwenjianjia;
            cb_zhidingwenjianjia5.Checked = myfi._zhidingwenjianjia;
        }
Example #3
0
        /// <summary>
        /// 点击开始按钮时触发的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lbl_kaishi_Click(object sender, EventArgs e)
        {
            //修改程序状态为执行,刷新状态信息
            lbl_zhuangtai.Text   = "正在进行数据解析……";
            lbl_kaishi.Enabled   = false;
            lbl_kaishi.BackColor = Color.Gray;
            statue = 1;

            //获得文件夹下所有的文件名
            for (int i = folderIndex; i < dgv_task.Rows.Count; i++)
            {
                folderIndex = i;//时刻记录当前程序执行到的文件夹位置
                string   folder = dgv_task.Rows[i].Cells[1].Value.ToString();
                string[] files  = Directory.GetFiles(folder);
                for (int k = fileIndex; k < files.Length; k++)
                {
                    //计算百分率
                    double _processRate = 100 * Convert.ToDouble(k + 1) / Convert.ToDouble(files.Length);
                    dgv_task.Rows[i].Cells[3].Value = $"{_processRate.ToString("00.00")}%";
                    Application.DoEvents();

                    //如果用户终止了或者暂停了程序,就跳出循环
                    if (statue == 0 || statue == 2)
                    {
                        return;
                    }
                    fileIndex = k;//时刻记录当前程序执行到的文件位置
                    string file = files[k];
                    #region  1、文件名格式标准化

                    /*1、开始文件名格式标准化*/
                    string path         = Path.GetDirectoryName(file);
                    string fileOriginal = Path.GetFileNameWithoutExtension(file);
                    string extension    = Path.GetExtension(file);
                    string filename     = string.Empty;//用于存放改后的文件名
                    //判断“文件名标准化”格式,如果不是“无”,则进行文件名格式标准化

                    if (!SystemInfo._userInfo._wjmbzh.Equals("无"))
                    {
                        //拆分出路径和文件名
                        ///拆分后的文件名集合,对list进行处理,如果是\d星,那么要和前一项合并
                        List <string> list = Regex.Split(fileOriginal, @"\.").ToList();
                        for (int j = 0; j < list.Count; j++)
                        {
                            if (Regex.IsMatch(list[j], @"\d星"))
                            {
                                list[j] = $"{list[j - 1] }.{list[j]}";
                                list.RemoveAt(j - 1);
                                break;
                            }
                        }
                        //获得文件名标准格式下的所有rule名称
                        FormatInfo fi = new FormatInfo(SystemInfo._userInfo._wjmbzh);
                        fi.GetFormatInfo();
                        List <string> rules = Regex.Split(fi._formatSet, @"\|").ToList();
                        //对每一个rule循环,获得设置root
                        foreach (string rule in rules)
                        {
                            RuleInfo myri = new RuleInfo(rule, "文件名标准化");
                            myri.GetRuleInfo();
                            WjmRuleRoot myroot = ((WjmRuleRoot)myri._root);
                            //判断位置,得到操作目标,对每种可能的目标进行判断操作
                            if (myroot.position[0].Equals("整个文件名"))
                            {
                                //对操作目标进行操作
                                if (!myroot.delete.Trim().Equals(string.Empty))
                                {
                                    filename = Regex.Replace(fileOriginal, myroot.delete.Trim(), "");
                                }
                                else if (!myroot.replace0.Trim().Equals(string.Empty))
                                {
                                    filename = Regex.Replace(fileOriginal, myroot.replace0.Trim(), myroot.replace);
                                }
                            }
                            else if (myroot.position[0].Equals("文件名前"))
                            {
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    filename = $"{myroot.newText}{fileOriginal}";
                                }
                            }
                            else if (myroot.position[0].Equals("文件名后"))
                            {
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    filename = $"{fileOriginal}{myroot.newText}";
                                }
                            }
                            else if (Regex.IsMatch(myroot.position[0], @"文件名第\d项前"))
                            {
                                //获得数字,然后获得目标文本
                                int    index  = Convert.ToInt32(Regex.Match(myroot.position[0], @"\d").Value);
                                string target = list[index - 1];
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    target = $"{myroot.newText.Trim()}{target}";
                                }
                                list[index - 1] = target;
                                filename        = string.Join(".", list);
                            }
                            else if (Regex.IsMatch(myroot.position[0], @"文件名第\d项后"))
                            {
                                //获得数字,然后获得目标文本
                                int    index  = Convert.ToInt32(Regex.Match(myroot.position[0], @"\d").Value);
                                string target = list[index - 1];
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    target = $"{target}{myroot.newText.Trim()}";
                                }
                                list[index - 1] = target;
                                filename        = string.Join(".", list);
                            }
                            //给文件改名
                            File.Move($"{file}", $"{path}\\{filename}{extension}");
                        }
                    }
                    else//如果不进行文件名标准化,那么新得文件名和原先一样
                    {
                        filename = fileOriginal;
                    }
                    string currentFilename = $"{path}\\{filename}{extension}";

                    #endregion



                    #region 2、文档格式标准化
                    //判断“文档格式标准化”格式,如果用户不是选择了“无”,则执行文件格式标准化
                    if (!SystemInfo._userInfo._wjbzh.Equals("无"))
                    {
                        //获得标准化规则
                        FormatInfo _format = new FormatInfo(SystemInfo._userInfo._wjbzh);
                        _format.GetFormatInfo();
                        string   _rule     = Regex.Split(_format._formatSet, @"\|")[0];
                        RuleInfo _ruleInfo = new RuleInfo(_rule, "格式标准化");
                        _ruleInfo.GetRuleInfo();
                        BzhRuleRoot _root = _ruleInfo._root as BzhRuleRoot;
                        //调整文档格式,包括大标题,副标题,正文,一级标题,二级标题,三级标题,页边距,
                        MyMethod.UpdateFormat2(currentFilename, _root);

                        //文本标注,暂时 放一放
                    }


                    #endregion

                    #region 3、查重清洗
                    //判断用户选择的查重清洗格式,如果不等于,则进行查重清洗
                    if (!SystemInfo._userInfo._ccqx.Equals("无"))
                    {
                    }

                    #endregion
                    #region 4、基础解析
                    //判断用户选择的基础解析格式,如果不等于无,则进行基础解析
                    JJDocument _jjDoc = new JJDocument(currentFilename);

                    if (!SystemInfo._userInfo._jcjx.Equals("无"))
                    {
                        var listbase = _jjDoc.GetBaseAnalysis();
                        _jjDoc.SaveList2Excel(listbase);
                    }


                    #endregion

                    #region 5、内容解析
                    //判断用户选择的内容解析格式,如果不等于无,则进行内容解析
                    if (!SystemInfo._userInfo._nrjx.Equals("无"))
                    {
                        var listneirong = _jjDoc.GetNeirongAnalysis();
                        _jjDoc.SaveList2Excel(listneirong);
                    }

                    #endregion
                    #region 6、大数据版
                    //判断用户选择的大数据版,如果不等于无,则进行大数据版
                    if (!SystemInfo._userInfo._dsjb.Equals("无"))
                    {
                    }
                    #endregion
                }
            }
            //执行完成提示,完成并将系统状态还原为0
            statue             = 0;
            lbl_kaishi.Enabled = true;

            lbl_kaishi.ForeColor = Color.White;
            lbl_kaishi.BackColor = Color.MediumSeaGreen;
            lbl_zhuangtai.Text   = "已就绪,请点击\"开始\"执行解析";
            MessageBox.Show("本次数据处理已完成!");
        }