Пример #1
0
        /// <summary>
        /// 英语全局答案分析
        /// </summary>
        /// <param name="subjectstructure"></param>
        /// <param name="endfor"></param>
        /// <param name="fatherID">父题的ID</param>
        /// <returns>返回用来标识是否有子答案</returns>
        private bool englishAnalyseAnswer(SubjectStructure subjectstructure, int startanswer, int endanswer)
        {
            MartianSpot martianSpot = new MartianSpot();
            List<SubjectInfo> listminisubject = null;
            //Subject subject = (Subject)treenode.Tag;

            try
            {

                listminisubject = martianSpot.answerSpot(mainContent1.WordBrowers.document, ref this.progressBarSpot, subjectstructure.subjectPre, startanswer, endanswer);
                if (listminisubject.Count == 0)
                    return false;

                for (int i = 0; i < listminisubject.Count; i++)
                {
                    SubjectInfo subjectInfoStart = listminisubject[i];
                    int start = subjectInfoStart.paragraphsStart;

                    SubjectInfo subjectInfoEnd;
                    int end;
                    if (i == listminisubject.Count - 1)
                    {
                        //subjectInfoEnd = listminisubject[i];
                        //object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
                        //最后一题将范围移动至文档结束
                        end = endanswer;
                    }
                    else
                    {
                        subjectInfoEnd = listminisubject[i + 1];
                        end = subjectInfoEnd.paragraphsStart;
                    }
                    //设定选择范围
                    mainContent1.WordBrowers.document.Application.Selection.SetRange(start, end);
                    //更新目录栏
                    // analyseAnswerSecond(subjectstructure, fatherID, treenode);
                    //获取答案范围
                    mainContent1.WordBrowers.document.Application.Selection.Range.Copy();//包括题目前ID号内容的范围
                    String cliptext = ClipboardHelper.getClipboardText();
                    int prelength = 0;//定义前段返回的字符串

                    string sequencestr = MatchContent.matchRe(subjectstructure.subjectPre, cliptext, ref prelength);
                    int sequence = 1;//试题在套卷中的排序号
                    try
                    {
                        sequence = Int16.Parse(sequencestr);
                    }
                    catch (Exception ex)
                    {
                        sequence = 1;
                    }

                    TreeNode treenodecurrect = englistJudgeAnswerForSubject(sequence);//判断答案对应的树节点
                    if (treenodecurrect == null)
                    {
                    }
                    else
                    {
                        mainContent1.WordBrowers.document.Application.Selection.SetRange(start + prelength, end);
                        Subject treenodecurrectsubject = (Subject)treenodecurrect.Tag;
                        mainContent1.WordBrowers.document.Application.Selection.Range.Copy();//不包括题目前ID号内容的范围
                        String html = ClipboardHelper.getClipboardHtml();
                        HtmlUtil.HtmlPictureMove(ref html);
                        html = HtmlUtil.HtmlFragmentClear(html);
                        treenodecurrectsubject.answer.subjecthtmlanswer = HtmlUtil.htmlreplace(html);
                        //treenodecurrectsubject.answer.subjectbinaryanswer = ClipboardHelper.getClipboardEmbed();
                        treenodecurrectsubject.answer.subjecttextanswer = ClipboardHelper.getClipboardText();
                    }
                }
                return true;
            }
            catch (NullReferenceException ex)
            {
                return false;
                // MessageBox.Show("请先在程序中打开word文件。");
            }
        }
Пример #2
0
        /// <summary>
        /// 全局答案分析
        /// </summary>
        /// <param name="subjectstructure"></param>
        /// <param name="endfor"></param>
        /// <param name="fatherID">父题的ID</param>
        /// <returns>返回用来标识是否有子答案</returns>
        private bool analyseAnswer(SubjectStructure subjectstructure, int fatherID, TreeNode treenode, int startanswer, int endanswer)
        {
            MartianSpot martianSpot = new MartianSpot();
            List<SubjectInfo> listminisubject = null;
            //Subject subject = (Subject)treenode.Tag;

            try
            {

                listminisubject = martianSpot.answerSpot(mainContent1.WordBrowers.document, ref this.progressBarSpot, subjectstructure.subjectPre, startanswer, endanswer);
                if (listminisubject.Count == 0)
                    return false;

                for (int i = 0; i < listminisubject.Count; i++)
                {
                    SubjectInfo subjectInfoStart = listminisubject[i];
                    int start = subjectInfoStart.paragraphsStart;

                    SubjectInfo subjectInfoEnd;
                    int end;
                    if (i == listminisubject.Count - 1)
                    {
                        //subjectInfoEnd = listminisubject[i];
                        //object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */
                        //最后一题将范围移动至文档结束
                        end = endanswer;
                    }
                    else
                    {
                        subjectInfoEnd = listminisubject[i + 1];
                        end = subjectInfoEnd.paragraphsStart;
                    }
                    //设定选择范围
                    mainContent1.WordBrowers.document.Application.Selection.SetRange(start, end);
                    //更新目录栏
                    analyseAnswerSecond(subjectstructure, fatherID, treenode);
                }
                return true;
            }
            catch (NullReferenceException ex)
            {
                return false;
                // MessageBox.Show("请先在程序中打开word文件。");
            }
        }