学生做word题时,要求学生对指定字符进行查找及替换,下面的代码用来检查学生做的是不是正确。

bool 替换正确(word.Document thedoc, string 要被替换的字符) { try { word.Selection sel = app.Selection; sel.Find.Wrap = word.WdFindWrap.wdFindContinue; sel.Find.Text = 要被替换的字符; bool ok = sel.Find.Execute(ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); if (ok) { return false; } return true; } catch { return false; } } public bool 查找替换(word.Document thedoc, string 要被替换的字符, string 要替换成的字符, string 字符效果) { try { if (!替换正确(thedoc, 要被替换的字符)) { return false; } word.Selection sel = app.Selection; sel.Find.Wrap = word.WdFindWrap.wdFindContinue; sel.Find.Text = 要替换成的字符; int count = 0; bool find = true; while (find) { find = sel.Find.Execute(ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss); if (find) { count++; switch (字符效果) { case "0": //着重号 if (sel.Font.EmphasisMark != word.WdEmphasisMark.wdEmphasisMarkOverSolidCircle) { return false; } break; case "1": //变成红色 if (sel.Font.Color != word.WdColor.wdColorRed) { return false; } break; case "2": //变成蓝色 if (sel.Font.Color != word.WdColor.wdColorBlue) { return false; } break; case "3": //倾斜 if (sel.Font.Italic != -1) { return false; } break; case "4": //加粗 if (sel.Font.Bold != -1) { return false; } break; case "5": //加粗倾斜 if (sel.Font.Bold != -1 | sel.Font.Italic != -1) { return false; } break; case "6": //加粗 变成红色 if (sel.Font.Bold != -1 | sel.Font.Color != word.WdColor.wdColorRed) { return false; } break; case "7": //着重号 变成蓝色 if (sel.Font.EmphasisMark != word.WdEmphasisMark.wdEmphasisMarkOverSolidCircle | sel.Font.Color != word.WdColor.wdColorBlue) { return false; } break; default: break; } } } if (count == 0) { return false; } return true; } catch { return false; } }