如何检查单词中的某些字段是否有错误?我有一个大文档,其中包含许多其他章节或图像的引用。如果文档中缺少这些章节或图像,则包含这些参考的字段将显示Error! Reference Source Not Found
而不是参考。
问题是,我需要创建一个算法来检查那些引用错误,无论文件的语言环境和语言是什么。问题是,该字段错误已本地化为使用该单词的用户的系统语言。
我该怎么做? Field
上是否有可用于检查来源是否可用的属性?
目前,我使用字段的结果文本检查字段中的错误:
Int32 fieldErrors = 0;
foreach (Word.Field field in doc.Fields)
{
field.Update();
if (field.Result.Text.StartsWith("Error!"))
++fieldErrors;
}
不幸的是,这只适用于英语单词实例。
答案 0 :(得分:2)
在Field
类型的文档中,可以看到Field
实例的Update()
方法返回bool
。文档没有说明返回值的语义含义,但是,通过做一个简短的实证研究,我发现如果true
成功,则方法返回Update()
,如果false
,则返回var fieldsWithErrors = new List<Field>();
foreach (Field field in document.Fields)
{
if(!field.Update())
fieldsWithErrors.Add(field);
}
更新没有成功。这意味着,为了找到有错误的字段,您可以执行以下操作:
var fieldsWithErrors = document.Fields.Cast<Field>().Where(field => !field.Update()).ToList();
......或更短的LINQ:
Update()
另一种(更快)的方法是使用Fields
集合公开的var indexOfFirstError = document.Fields.Update();
方法。
{{1}}
...该方法返回带有错误的第一个字段的索引。如果未找到错误,则该方法返回0.
有关完整文档,请参阅MSDN参考: