学生做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; }
}