diff --git a/.vs/AIProofread/v17/.suo b/.vs/AIProofread/v17/.suo
index 337bbe4..e918858 100644
Binary files a/.vs/AIProofread/v17/.suo and b/.vs/AIProofread/v17/.suo differ
diff --git a/AIProofread.sln b/AIProofread.sln
index 234a440..0e78899 100644
--- a/AIProofread.sln
+++ b/AIProofread.sln
@@ -13,20 +13,27 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
+ Test|Any CPU = Test|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6CE536CB-6154-4FDF-9FFE-23A73B4E84AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CE536CB-6154-4FDF-9FFE-23A73B4E84AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CE536CB-6154-4FDF-9FFE-23A73B4E84AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CE536CB-6154-4FDF-9FFE-23A73B4E84AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6CE536CB-6154-4FDF-9FFE-23A73B4E84AB}.Test|Any CPU.ActiveCfg = Test|Any CPU
+ {6CE536CB-6154-4FDF-9FFE-23A73B4E84AB}.Test|Any CPU.Build.0 = Test|Any CPU
{455E23BE-F34F-4F6F-A9EA-381D66170B1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{455E23BE-F34F-4F6F-A9EA-381D66170B1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{455E23BE-F34F-4F6F-A9EA-381D66170B1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{455E23BE-F34F-4F6F-A9EA-381D66170B1B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {455E23BE-F34F-4F6F-A9EA-381D66170B1B}.Test|Any CPU.ActiveCfg = Test|Any CPU
+ {455E23BE-F34F-4F6F-A9EA-381D66170B1B}.Test|Any CPU.Build.0 = Test|Any CPU
{FF204E99-82F8-405E-847B-88FC6DF07715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF204E99-82F8-405E-847B-88FC6DF07715}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF204E99-82F8-405E-847B-88FC6DF07715}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF204E99-82F8-405E-847B-88FC6DF07715}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FF204E99-82F8-405E-847B-88FC6DF07715}.Test|Any CPU.ActiveCfg = Test|Any CPU
+ {FF204E99-82F8-405E-847B-88FC6DF07715}.Test|Any CPU.Build.0 = Test|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/AIProofread/AIProofread.csproj b/AIProofread/AIProofread.csproj
index f989125..768b787 100644
--- a/AIProofread/AIProofread.csproj
+++ b/AIProofread/AIProofread.csproj
@@ -316,6 +316,20 @@
62DF6B414BD2608A130540A801F32D12E0199A99
+
+ bin\Test\
+ VSTO40;TRACE
+ true
+ pdbonly
+ AnyCPU
+ 7.3
+
+
+ bin\Win32\Test\
+ VSTO40
+ AnyCPU
+ 7.3
+
diff --git a/AIProofread/AIProofread.csproj.user b/AIProofread/AIProofread.csproj.user
index 2cd0081..2b6bc73 100644
--- a/AIProofread/AIProofread.csproj.user
+++ b/AIProofread/AIProofread.csproj.user
@@ -8,6 +8,6 @@
Project
- C:\Soft\Kingsoft\WPS Office\12.1.0.16910\office6\wps.exe
+ C:\Soft\Kingsoft\WPS Office\12.1.0.16929\office6\wps.exe
\ No newline at end of file
diff --git a/AIProofread/Bridge.cs b/AIProofread/Bridge.cs
index a9526c4..48a509e 100644
--- a/AIProofread/Bridge.cs
+++ b/AIProofread/Bridge.cs
@@ -104,11 +104,13 @@ namespace AIProofread
public void ShowCurrentPane()
{
- Globals.ThisAddIn.currentDocumentTaskPane.Visible = true;
+ Globals.ThisAddIn.ShowPanel();
+ //Globals.ThisAddIn.currentDocumentTaskPane.Visible = true;
}
public void HideCurrentPane()
{
- Globals.ThisAddIn.currentDocumentTaskPane.Visible = false;
+ Globals.ThisAddIn.HidePanel();
+ //Globals.ThisAddIn.currentDocumentTaskPane.Visible = false;
}
public void Logout(string action)
@@ -224,7 +226,8 @@ namespace AIProofread
{
if (item.mark != null)
{
- if(item.content.tag == "i" && item.content.isAccept == AcceptStatus.Default) {
+ if (item.content.tag == "i" && item.content.isAccept == AcceptStatus.Default)
+ {
item.mark.Text = "";
}
item.ResetMarkStyle();
@@ -232,9 +235,10 @@ namespace AIProofread
}
marks.Clear();
DocumentUtil.ClearProofreadMarks();
- }catch (Exception ex)
+ }
+ catch (Exception ex)
{
- Logger.Log("ClearAllProofreadMark",ex);
+ Logger.Log("ClearAllProofreadMark", ex);
}
}
@@ -434,6 +438,7 @@ namespace AIProofread
//var app = Globals.ThisAddIn.Application;
//var cur = app.Selection;
//
+ int aIndex = 0;
foreach (var correct in list)
{
//cur.TypeText(correct.Insert);
@@ -446,11 +451,20 @@ namespace AIProofread
// return it.start + correct.Insert_len;
//}).ToList();
int index = 0;
+ if (aIndex++ > 20)
+ {
+ Console.WriteLine(aIndex);
+ }
foreach (var item in correct.Diffs)
{
+ if(item.id == 109288)
+ {
+ Console.WriteLine("xxx");
+ }
var mark = AddBookmark(item, index, correct.Sentence_offset, correct.Insert_len, correct.Paragraph_offset);
if (item.tag != "i") index++;
- if (mark != null) {
+ if (mark != null)
+ {
marks.Add(item.id, new ProofreadItem(item, mark));
}
}
@@ -458,7 +472,7 @@ namespace AIProofread
}
foreach (var item in marks)
{
- if(item.Value.mark != null)
+ if (item.Value.mark != null)
{
if (item.Value.content.tag == "i")
{
@@ -472,7 +486,7 @@ namespace AIProofread
}
}
}
-
+
public string GetParagraph(int index)
{
@@ -496,32 +510,13 @@ namespace AIProofread
}
}
- public Microsoft.Office.Tools.Word.Bookmark AddBookmark(CorrectedContent item, int findIndex, int offset, int length,int paragraphIndex)
+ public Microsoft.Office.Tools.Word.Bookmark AddBookmark(CorrectedContent item, int findIndex, int offset, int length, int paragraphIndex)
{
Microsoft.Office.Tools.Word.Bookmark bookmark = null;
try
{
var document = Globals.ThisAddIn.Application.ActiveDocument;
ControlCollection controls = Globals.Factory.GetVstoObject(document).Controls;
- // 判断并获取当前段落
- if (paragraphIndex > document.Paragraphs.Count) return null;
- var paragraph = document.Paragraphs[paragraphIndex];
- var paragraphStart = paragraph.Range.Start;
- var Start = paragraphStart + offset;
- var End = Start + length - 1;
- if(End > paragraph.Range.End)
- {
- End = paragraph.Range.End;
- }
-
- // 当前句子的选区
- var fullRange = document.Range(Start, End);
- string fullText = fullRange.Text;
- Start = paragraphStart + offset + item.start;
- End = paragraphStart + offset + item.end;
-
- // 定位要操作的文字
- var r = document.Range(Start, End);
var markName = Config.BuildBookmarkName(item.id);
// 判断是否已经存在
@@ -529,28 +524,77 @@ namespace AIProofread
{
controls.Remove(markName);
}
- // 判断选区是否正确
- if (item.tag == "i" || r.Text == item.origin)
+ Range findRange = null;
+ if (paragraphIndex > document.Paragraphs.Count) return null;
+ var paragraph = document.Paragraphs[paragraphIndex];
+ var paragraphStart = paragraph.Range.Start;
+ offset += paragraphStart;
+
+ var Start = offset;
+ var End = Start + length - 1;
+ if (End > paragraph.Range.End)
{
- bookmark = controls.AddBookmark(r, markName);
+ End = paragraph.Range.End;
+ }
+
+ // 当前句子的选区
+ var fullRange = document.Range(Start, End);
+ string fullText = fullRange.Text ?? paragraph.Range.Text;
+ Start = offset + item.start;
+ End = offset + item.end;
+
+ // 如果是新增 只能使用接口数据
+ findRange = document.Range(Start, End);
+ if (item.tag != "i" && findRange.Text != item.origin)
+ {
+ findRange = DocumentUtil.FindRange(paragraphIndex, item.origin, item.start, item.end);
+ }
+
+ if (findRange != null)
+ {
+ bookmark = controls.AddBookmark(findRange, markName);
bookmark.Tag = "ai_proofread";
}
- else
- {
- int startPos = 0, index, findCount = 0;
- while ((index = fullText.IndexOf(item.origin, startPos)) != -1)
- {
- if (findCount == findIndex)
- {
- r = document.Range(offset + index, offset + index + item.origin.Length);
- bookmark = controls.AddBookmark(r, markName);
- bookmark.Tag = "ai_proofread";
- break;
- }
- startPos = index;
- findCount++;
- }
- }
+
+ #region start
+
+ //// 判断并获取当前段落
+
+
+ //// 定位要操作的文字
+ //var r = document.Range(Start, End);
+
+ //// 判断选区是否正确
+ //if (item.tag == "i" || r.Text == item.origin)
+ //{
+ // bookmark = controls.AddBookmark(r, markName);
+ // bookmark.Tag = "ai_proofread";
+ //}
+ //else
+ //{
+ // object str = item.origin;
+ // FindRange(ref fullRange, ref str);
+
+ // if(fullRange != null){
+ // bookmark = controls.AddBookmark(fullRange, markName);
+ // bookmark.Tag = "ai_proofread";
+ // }
+ // //int startPos = 0, index, findCount = 0;
+ // //while ((index = fullText.IndexOf(item.origin, startPos)) != -1)
+ // //{
+ // // if (findCount == findIndex)
+ // // {
+ // // r = document.Range(offset + index, offset + index + item.origin.Length);
+ // // if(r.Text == item.origin) { }
+ // // bookmark = controls.AddBookmark(r, markName);
+ // // bookmark.Tagetg = "ai_proofread";
+ // // break;
+ // // }
+ // // startPos = index;
+ // // findCount++;
+ // //}
+ //}
+ #endregion
}
catch (Exception ex)
@@ -560,5 +604,15 @@ namespace AIProofread
return bookmark;
}
+ private void FindRange(ref Range range,ref object whatToFind)
+ {
+ object matchCase = false; // 是否区分大小写
+ object matchWholeWord = false; // 是否匹配整个单词
+ object matchWildcards = false; // 是否使用通配符
+ object forward = true; // 搜索方向,true表示向前搜索,false表示向后搜索
+ object wrap = Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue; // 搜索范围,这里表示继续搜索
+
+ range.Find.Execute(ref whatToFind, ref matchCase, ref matchWholeWord, ref matchWildcards, ref forward, ref wrap);
+ }
}
}
diff --git a/AIProofread/Config.cs b/AIProofread/Config.cs
index de1a8a6..b4d11dd 100644
--- a/AIProofread/Config.cs
+++ b/AIProofread/Config.cs
@@ -6,7 +6,7 @@ namespace AIProofread
public class Config
{
public static readonly string APP_NAME = "AI校对王";
- public static readonly string APP_VERSION = "1.0.0";
+ public static readonly string APP_VERSION = "1.0.4";
public static bool IS_WPS = false;
#if DEBUG
///
diff --git a/AIProofread/Logger.cs b/AIProofread/Logger.cs
index 996bd87..83be22b 100644
--- a/AIProofread/Logger.cs
+++ b/AIProofread/Logger.cs
@@ -22,9 +22,9 @@ namespace AIProofread
Directory.CreateDirectory(Config.APP_LOG_PATH);
}
StreamWriter streamWriter = File.AppendText(path);
+ streamWriter.WriteLine("***************************[" + (Config.IS_WPS ? "WPS" : "WORD") + "]***************************");
streamWriter.WriteLine("消息:" + msg);
streamWriter.WriteLine("时间:" + DateTime.Now.ToString("yyyy - MM - dd HH: mm:ss"));
- streamWriter.WriteLine("***************************[" + (Config.IS_WPS?"WPS":"WORD")+ "]***************************");
streamWriter.WriteLine();
streamWriter.Flush();
streamWriter.Close();
diff --git a/AIProofread/Ribbon1.Designer.cs b/AIProofread/Ribbon1.Designer.cs
index aa5f183..c10708a 100644
--- a/AIProofread/Ribbon1.Designer.cs
+++ b/AIProofread/Ribbon1.Designer.cs
@@ -51,6 +51,7 @@ namespace AIProofread
this.grpDebug = this.Factory.CreateRibbonGroup();
this.btnShowPane = this.Factory.CreateRibbonButton();
this.btnHidePane = this.Factory.CreateRibbonButton();
+ this.btnTestLocation = this.Factory.CreateRibbonButton();
this.tabAIProofread.SuspendLayout();
this.group1.SuspendLayout();
this.grpDebug.SuspendLayout();
@@ -167,6 +168,7 @@ namespace AIProofread
//
this.grpDebug.Items.Add(this.btnShowPane);
this.grpDebug.Items.Add(this.btnHidePane);
+ this.grpDebug.Items.Add(this.btnTestLocation);
this.grpDebug.Label = "开发调试";
this.grpDebug.Name = "grpDebug";
this.grpDebug.Visible = false;
@@ -183,6 +185,12 @@ namespace AIProofread
this.btnHidePane.Name = "btnHidePane";
this.btnHidePane.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnHidePane_Click);
//
+ // btnTestLocation
+ //
+ this.btnTestLocation.Label = "文本位置";
+ this.btnTestLocation.Name = "btnTestLocation";
+ this.btnTestLocation.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnTestLocation_Click);
+ //
// Ribbon1
//
this.Name = "Ribbon1";
@@ -216,6 +224,7 @@ namespace AIProofread
internal Microsoft.Office.Tools.Ribbon.RibbonGroup grpDebug;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnShowPane;
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnHidePane;
+ internal Microsoft.Office.Tools.Ribbon.RibbonButton btnTestLocation;
}
partial class ThisRibbonCollection
diff --git a/AIProofread/Ribbon1.cs b/AIProofread/Ribbon1.cs
index efa6039..7793208 100644
--- a/AIProofread/Ribbon1.cs
+++ b/AIProofread/Ribbon1.cs
@@ -4,6 +4,8 @@ using System.Diagnostics;
using AIProofread.Controls;
using UtilLib;
using System.Drawing;
+using System.Security.Cryptography;
+using Microsoft.Office.Interop.Word;
namespace AIProofread
{
@@ -17,7 +19,7 @@ namespace AIProofread
//btnLogout.Label = "退出\n登录";
Globals.ThisAddIn.ribbon = this;
- if(Config.RUN_IN_DEBUG)
+ if (Config.RUN_IN_DEBUG)
{
grpDebug.Visible = true;
}
@@ -129,5 +131,26 @@ namespace AIProofread
{
Globals.ThisAddIn.HidePanel();
}
+
+
+ void TestStr(int p, string str)
+ {
+
+ var doc = Globals.ThisAddIn.Application.ActiveDocument;
+ var p1 = doc.Paragraphs[p];
+ var text = p1.Range.Text;
+ var index = text.IndexOf(str);
+ var r = DocumentUtil.FindRange(p, str, index, index + str.Length);
+
+ System.Windows.Forms.MessageBox.Show("段落:" + p + str + ":" + index + (r == null ? "" : r.Text));
+ //var findRange = FindRange(p, findIndex, str, index, index + str.Length);
+
+ }
+ private void btnTestLocation_Click(object sender, RibbonControlEventArgs e)
+ {
+ TestStr(2, "销");
+ TestStr(3, "针");
+ TestStr(22, "疏");
+ }
}
}
diff --git a/AIProofread/ThisAddIn.cs b/AIProofread/ThisAddIn.cs
index 1426037..c18adde 100644
--- a/AIProofread/ThisAddIn.cs
+++ b/AIProofread/ThisAddIn.cs
@@ -43,29 +43,15 @@ namespace AIProofread
public List LoginFormList = new List();
public Dictionary taskPanels = new Dictionary();
- public Dictionary panelsVisible = new Dictionary();
+ public Dictionary panelsVisibleStatus = new Dictionary();
public CustomTaskPane currentDocumentTaskPane;
private static readonly Dictionary> allMarks = new Dictionary>();
private void Application_WindowDeactivate(Word.Document doc, Window Wn)
{
- Logger.Log("Application_WindowDeactivate -- " + doc.FullName);
+ Logger.Log("Application_WindowDeactivate -- " + doc.FullName + " visible:" + currentDocumentTaskPane.Visible);
//HidePanel(Doc);
- if (taskPanels.ContainsKey(doc))
- {
- var visible = taskPanels[doc].Visible;
- // 记录当前文档的显示状态
- if (!panelsVisible.ContainsKey(doc))
- {
- panelsVisible.Add(doc, visible);
- }
- else
- {
- panelsVisible[doc] = visible;
- }
- }
-
}
private void Application_WindowActivate(Word.Document activeDoc, Window Wn)
@@ -77,17 +63,19 @@ namespace AIProofread
}
Logger.Log("Application_WindowActivate -- " + activeDoc.FullName);
//ShowPanel(Doc);
-
+ // 创建面板
if (!taskPanels.ContainsKey(activeDoc))
{
ShowPanel(activeDoc, false);
+ panelsVisibleStatus.Add(activeDoc, false);
}
+ // 设置当前面板为新创建的面板
this.currentDocumentTaskPane = taskPanels[activeDoc];
if (IsWPS)
{
HideOtherPanel(activeDoc);
}
- if (panelsVisible.ContainsKey(activeDoc) && panelsVisible[activeDoc])
+ if (panelsVisibleStatus.ContainsKey(activeDoc) && panelsVisibleStatus[activeDoc])
{
taskPanels[activeDoc].Visible = true;
}
@@ -128,6 +116,10 @@ namespace AIProofread
}
void DisposePanel(Word.Document doc)
{
+ if (panelsVisibleStatus.ContainsKey(doc))
+ {
+ panelsVisibleStatus.Remove(doc);
+ }
if (taskPanels.ContainsKey(doc))
{
taskPanels[doc].Visible = false;
@@ -142,9 +134,14 @@ namespace AIProofread
{
return;
}
+ // 隐藏其他的文档
foreach (var key in taskPanels.Keys)
{
- taskPanels[key].Visible = false;
+ // 记录面板原始状态
+ if (key != doc)
+ {
+ taskPanels[key].Visible = false;
+ }
}
}
@@ -336,12 +333,20 @@ namespace AIProofread
public void ShowPanel()
{
this.currentDocumentTaskPane.Visible = true;
+ if (panelsVisibleStatus.ContainsKey(Application.ActiveDocument))
+ {
+ panelsVisibleStatus[Application.ActiveDocument] = true;
+ }
}
// 隐藏面板
public void HidePanel()
{
this.currentDocumentTaskPane.Visible = false;
+ if (panelsVisibleStatus.ContainsKey(Application.ActiveDocument))
+ {
+ panelsVisibleStatus[Application.ActiveDocument] = false;
+ }
}
///
diff --git a/AIProofread/core/DocumentUtil.cs b/AIProofread/core/DocumentUtil.cs
index 6546b92..9d2d561 100644
--- a/AIProofread/core/DocumentUtil.cs
+++ b/AIProofread/core/DocumentUtil.cs
@@ -8,6 +8,7 @@ using Bookmark = Microsoft.Office.Tools.Word.Bookmark;
using System.Collections.Generic;
using Microsoft.Office.Tools.Word;
using System;
+using System.Xml.Linq;
namespace AIProofread
{
@@ -85,8 +86,9 @@ namespace AIProofread
public static void ClearProofreadMarks()
{
- var bookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks;
- ControlCollection controls = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveDocument).Controls;
+ var document = Globals.ThisAddIn.Application.ActiveDocument;
+ var bookmarks = document.Bookmarks;
+ ControlCollection controls = Globals.Factory.GetVstoObject(document).Controls;
foreach (Microsoft.Office.Interop.Word.Bookmark mark in bookmarks)
{
if (Config.IsProofreadMark(mark.Name))
@@ -94,18 +96,15 @@ namespace AIProofread
// 去除高亮
mark.Range.Shading.BackgroundPatternColor = WdColor.wdColorAutomatic;
// 去除下划线
- mark.Range.Underline = WdUnderline.wdUnderlineNone;
- //mark.Delete();
- }
- try
- {
- if (controls.Contains(mark))
+ //mark.Range.Underline = WdUnderline.wdUnderlineNone;
+ try
{
- controls.Remove(mark);
+ mark.Delete();
+ }
+ catch (Exception e)
+ {
+ Logger.Log("remove mark", e);
}
- }catch(Exception e)
- {
- Logger.Log("remove mark",e);
}
}
@@ -159,5 +158,126 @@ namespace AIProofread
}
return list;
}
+
+ ///
+ /// 查找对应段落的range
+ ///
+ /// 段落index,从第1开始计数
+ /// 要查找字符串
+ /// 字符串原始起始位置
+ /// 字符串原始结束位置
+ ///
+ public static Range FindRange(int paragraphsIndex, string findText, int wordStart, int wordEnd)
+ {
+ // 暂时接口无法支持
+ var document = Globals.ThisAddIn.Application.ActiveDocument;
+ if (paragraphsIndex > document.Paragraphs.Count) return null;
+ var paragraph = document.Paragraphs[paragraphsIndex];
+ try
+ {
+ //int num = 0;
+ int num3 = 0;
+
+ // 段落开始和结束
+ object Start = paragraph.Range.Start;
+ object End = paragraph.Range.End;
+
+ // 段落选区
+ Range range = document.Range(ref Start, ref End);
+
+ var activeDocument = document;
+ // 查找对象位置
+ End = range.Start + wordStart;
+ Start = range.Start + wordEnd;
+ // 直接找到
+ var findRange = activeDocument.Range(ref End, ref Start);
+ // 判断对应选区是否是要找的文本
+ if (findRange.Text == findText)
+ {
+ return findRange;
+ }
+ else
+ {
+ // 查找
+ range.Find.MatchByte = true;
+ // 使用选区查找功能
+ Find find = range.Find;
+ // 节约变量
+ End = findText;
+ Start = true;
+
+ object MatchWholeWord = Type.Missing;
+ object MatchWildcards = Type.Missing;
+ object MatchSoundsLike = Type.Missing;
+ object MatchAllWordForms = Type.Missing;
+ object Forward = Type.Missing;
+ object Wrap = Type.Missing;
+ object Format = Type.Missing;
+ object ReplaceWith = Type.Missing;
+ object Replace = Type.Missing;
+ object MatchKashida = Type.Missing;
+ object MatchDiacritics = Type.Missing;
+ object MatchAlefHamza = Type.Missing;
+ object MatchControl = Type.Missing;
+
+ // 没有找到则执行查询
+ find.Execute(
+ ref End, ref Start, ref MatchWholeWord,
+ ref MatchWildcards, ref MatchSoundsLike,
+ ref MatchAllWordForms, ref Forward, ref Wrap,
+ ref Format, ref ReplaceWith, ref Replace,
+ ref MatchKashida, ref MatchDiacritics,
+ ref MatchAlefHamza, ref MatchControl
+ );
+
+ while (range.Find.Found)
+ {
+ var obj4 = range.Document;
+ MatchControl = range.Start;
+ MatchAlefHamza = range.End;
+ var range2 = obj4.Range(ref MatchControl, ref MatchAlefHamza);
+ num3 = range2.End;
+ if (range2.Text == findText)
+ {
+ return range2;
+ }
+ break;
+ //if (findIndex == num)
+ //{
+
+ //}
+ //num++;
+ //range.Find.MatchByte = true;
+ //Find find2 = range.Find;
+ //MatchAlefHamza = missword;
+ //MatchControl = true;
+ //MatchDiacritics = Type.Missing;
+ //MatchKashida = Type.Missing;
+ //Replace = Type.Missing;
+ //ReplaceWith = Type.Missing;
+ //Format = Type.Missing;
+ //Wrap = Type.Missing;
+ //Forward = Type.Missing;
+ //MatchAllWordForms = Type.Missing;
+ //MatchSoundsLike = Type.Missing;
+ //MatchWildcards = Type.Missing;
+ //MatchWholeWord = Type.Missing;
+ //Start = Type.Missing;
+ //End = Type.Missing;
+ //// 再次重复查找
+ //find2.Execute(ref MatchAlefHamza, ref MatchControl, ref MatchDiacritics, ref MatchKashida, ref Replace, ref ReplaceWith, ref Format, ref Wrap, ref Forward, ref MatchAllWordForms, ref MatchSoundsLike, ref MatchWildcards, ref MatchWholeWord, ref Start, ref End);
+ }
+ if (num3 == 0)
+ {
+ return null;
+ }
+ }
+ }
+ catch (Exception)
+ {
+ }
+ return null;
+ }
+
}
}
diff --git a/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache b/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache
index 017812f..1e5811c 100644
Binary files a/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache and b/AIProofread/obj/Debug/AIProofread.csproj.AssemblyReference.cache differ
diff --git a/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache b/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache
index 7879b60..a9b3970 100644
Binary files a/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache and b/AIProofread/obj/Debug/AIProofread.csproj.GenerateResource.cache differ
diff --git a/AIProofread/obj/Debug/AIProofread.dll b/AIProofread/obj/Debug/AIProofread.dll
index 58fe951..b1bde2a 100644
Binary files a/AIProofread/obj/Debug/AIProofread.dll and b/AIProofread/obj/Debug/AIProofread.dll differ
diff --git a/AIProofread/obj/Debug/AIProofread.pdb b/AIProofread/obj/Debug/AIProofread.pdb
index 9779ad3..04e6b43 100644
Binary files a/AIProofread/obj/Debug/AIProofread.pdb and b/AIProofread/obj/Debug/AIProofread.pdb differ
diff --git a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index eb53244..5cb44f7 100644
Binary files a/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/AIProofread/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/AIProofread/obj/Test/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs b/AIProofread/obj/Test/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs
new file mode 100644
index 0000000..edc4647
--- /dev/null
+++ b/AIProofread/obj/Test/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
diff --git a/AIProofread/obj/Test/AIProofread.csproj.AssemblyReference.cache b/AIProofread/obj/Test/AIProofread.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..77d3f0b
Binary files /dev/null and b/AIProofread/obj/Test/AIProofread.csproj.AssemblyReference.cache differ
diff --git a/AIProofread/obj/Test/DesignTimeResolveAssemblyReferences.cache b/AIProofread/obj/Test/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..aab5102
Binary files /dev/null and b/AIProofread/obj/Test/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/AIProofread/obj/Test/DesignTimeResolveAssemblyReferencesInput.cache b/AIProofread/obj/Test/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..45dc6a2
Binary files /dev/null and b/AIProofread/obj/Test/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/AIProofread/obj/Test/TempPE/Properties.Resources.Designer.cs.dll b/AIProofread/obj/Test/TempPE/Properties.Resources.Designer.cs.dll
new file mode 100644
index 0000000..cb66fcc
Binary files /dev/null and b/AIProofread/obj/Test/TempPE/Properties.Resources.Designer.cs.dll differ
diff --git a/AIProofread/obj/Test/build.force b/AIProofread/obj/Test/build.force
new file mode 100644
index 0000000..e69de29
diff --git a/util-lib/obj/Test/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs b/util-lib/obj/Test/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs
new file mode 100644
index 0000000..edc4647
--- /dev/null
+++ b/util-lib/obj/Test/.NETFramework,Version=v4.6.2.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
diff --git a/util-lib/obj/Test/DesignTimeResolveAssemblyReferencesInput.cache b/util-lib/obj/Test/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..c207743
Binary files /dev/null and b/util-lib/obj/Test/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/util-lib/obj/Test/util-lib.csproj.AssemblyReference.cache b/util-lib/obj/Test/util-lib.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..adcf555
Binary files /dev/null and b/util-lib/obj/Test/util-lib.csproj.AssemblyReference.cache differ
diff --git a/util-lib/util-lib.csproj b/util-lib/util-lib.csproj
index 99dc0c5..5f8b034 100644
--- a/util-lib/util-lib.csproj
+++ b/util-lib/util-lib.csproj
@@ -30,6 +30,15 @@
prompt
4
+
+ bin\Test\
+ TRACE
+ true
+ pdbonly
+ AnyCPU
+ 7.3
+ prompt
+