C# 如何在word addin中找到某个单词在文本中的位置
我想创建word addin这一数字写作辅助工具 这是第一次向服务器发送全文,并得到拼写错误和他的位置。但是当编辑文本时 我不知道该怎么办 例如,通过计时器每隔3毫秒获取新的全文,并与以前的全文进行比较(通过库diffplex),如果我有新的插入(单词、行、段落……),则将新的文本段发送到服务器,而不是全文, 再次得到新的拼写错误列表和他在文本中的位置,这个位置是不正确的,因为它与同一段代码有关,而不是全文 然后我需要单词在文本或字符串中的位置(或单词的索引起始字符) 我想到了插入符号,但是 这可能是因为raise事件计时器_tick和插入符号改变了位置,并且我的计算不正确 你能帮我建议一种获取单词位置的方法吗? 计时器勾选上升时的代码:C# 如何在word addin中找到某个单词在文本中的位置,c#,string,stringbuilder,word-addins,diffplex,C#,String,Stringbuilder,Word Addins,Diffplex,我想创建word addin这一数字写作辅助工具 这是第一次向服务器发送全文,并得到拼写错误和他的位置。但是当编辑文本时 我不知道该怎么办 例如,通过计时器每隔3毫秒获取新的全文,并与以前的全文进行比较(通过库diffplex),如果我有新的插入(单词、行、段落……),则将新的文本段发送到服务器,而不是全文, 再次得到新的拼写错误列表和他在文本中的位置,这个位置是不正确的,因为它与同一段代码有关,而不是全文 然后我需要单词在文本或字符串中的位置(或单词的索引起始字符) 我想到了插入符号,但是 这
SideBySideDiffBuilder h = new SideBySideDiffBuilder();
var hd = h.BuildDiffModel(prev_doc, current_doc.Content.Text);
StringBuilder textInsertInModified = new StringBuilder();
StringBuilder textDeleteInModified = new StringBuilder();
StringBuilder textInsert = new StringBuilder();
StringBuilder textDelete = new StringBuilder();
foreach (var line in hd.NewText.Lines)
{
if (line.Type == ChangeType.Deleted)
{
textDelete.Append(line.Text);
}
else if (line.Type == ChangeType.Inserted)
{
textInsert.Append(line.Text);
}
else if (line.Type == ChangeType.Modified)
{
foreach (var l in line.SubPieces)
{
if (l.Type == ChangeType.Inserted)
{
textInsertInModified.Append(l.Text);
}
}
foreach (var l in line.SubPieces)
{
if (l.Type == ChangeType.Deleted)
{
textDeleteInModified.Append(l.Text);
}
}
}
else if (line.Type == ChangeType.Imaginary)
{
//res3 += "- " + (i++) + line.Text + "(" + line.Position + ")" + "\n";
}
}