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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。