LunarMind/TestEditor/QuestionValidateManager.cs

(开头部分) 29KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LunarSF.SHomeWorkshop.LunarMind
{
    /// <summary>
    /// 与填空题相关的方法。
    /// </summary>
    internal static class QuestionValidateManager
    {
        static QuestionValidateManager()
        {
            //初始化空白字符数组,以用来进行文本操作。
            blankChars = new char[6];
            blankChars[0] = ' ';
            blankChars[1] = '\t';
            blankChars[2] = ' ';//全角空格
            blankChars[3] = '\r';//验证时不需要
            blankChars[4] = '\n';
        }

        private static char[] blankChars;
        /// <summary>
        /// 空白字符数组,用以进行文本操作。
        /// </summary>
        public static char[] BlankChars
        {
            get { return blankChars; }
        }

        /// <summary>
        /// 按照“全部为选择题”的规则来验证整个文档的合法性。
        /// </summary>
        /// <param name="documentText">要验证的文档的全部文本。</param>
        /// <param name="errorMsg">返回的错误消息。</param>
        /// <returns>验证合法会返回真。</returns>
        public static bool ValidateAsChoiceQuestions(string documentText, StringBuilder errorMsg = null)
        {
            //忽略所有空白字符,不能用Trim,因为Trim只去首尾。
            documentText = documentText.Replace("\r\n", "").Replace("\t", "").Replace(" ", "").Replace(" ", "");

            //去除文件信息那几行
            if (documentText.StartsWith("<<<信息>"))
            {
                int indexOfEndTitleTag = documentText.IndexOf("<信息>>>");
                if (indexOfEndTitleTag < 0)
                {
                    if (errorMsg != null)
                    {
                        errorMsg.Append("文档非法,文件信息部分缺少结束标记“<信息>>>”。请使用自动完成功能在行首添加“信息”并编辑文件信息文本。");
                    }
                }
                else
                {
                    documentText = documentText.Substring(indexOfEndTitleTag + 6);
                }
            }
后面还有 598 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。