1

如何检查我的单词中的某些字段是否有错误?我有一个很大的文档,其中包含对其他章节或图像的许多引用。当文档中缺少这些章节或图像时,将显示包含这些参考的字段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;
}

不幸的是,这仅适用于英语单词实例。

4

1 回答 1

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);
}

...或更短的LINQ:

var fieldsWithErrors = document.Fields.Cast<Field>().Where(field => !field.Update()).ToList();

另一种(更快)的方法是使用集合Update()公开的方法。Fields

var indexOfFirstError = document.Fields.Update();

...该方法返回有错误的第一个字段的索引。如果没有发现错误,该方法返回 0。

有关完整文档,请参阅 MSDN 参考资料:

于 2012-10-06T12:49:27.267 回答