public void FileContainsTextAtList(int index) { try { string fileName = resultList[index].ToString(); string source = QRcodeHelper.Decode(fileName); string target = searchInput.SearchForText; string[] sourceSubStr = source.Split(new string[] { "##" }, StringSplitOptions.RemoveEmptyEntries); string[] targetSubStr = target.Split(new string[] { "##" }, StringSplitOptions.RemoveEmptyEntries); if (sourceSubStr.Length > 1 && targetSubStr.Length > 1) { source = sourceSubStr[1]; target = targetSubStr[1]; } if (Operate.EditDistanceHelper.Compare(source, target)) { mainForm.Invoke(new MethodInvoker(() => { mainForm.lvFileSearch.Items[index].SubItems[2].Text = "符合"; })); } else { mainForm.Invoke(new MethodInvoker(() => { mainForm.lvFileSearch.Items[index].SubItems[2].Text = "不符合"; })); } } catch { mainForm.Invoke(new MethodInvoker(() => { mainForm.lvFileSearch.Items[index].SubItems[2].Text = "失败"; })); } }
public void FileContainsText2() { //searchStart.WaitOne(); int resultNum = 0; string fileName = ""; int index = 0; string target = searchInput.SearchForText; string[] targetSubStr = target.Split(new string[] { "##", ",", "/r", "/n", " " }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; ;) { try { start: lock (this) { resultNum = resultList.Count; if (i >= resultNum) { if (Searching == true) { Monitor.Exit(this); searchFileFinish.WaitOne(); goto start; } else { allFinish.Set(); return; } } else { fileName = resultList[i].ToString(); index = i; } } try { string source = QRcodeHelper.Decode(fileName); string[] sourceSubStr = source.Split(new string[] { "##", ",", "/r", "/n", " " }, StringSplitOptions.RemoveEmptyEntries); //if (sourceSubStr.Length > 1) //{ // source = sourceSubStr[1]; //} //if (targetSubStr.Length > 1) //{ // target = targetSubStr[1]; //} if (Operate.EditDistanceHelper.Compare(sourceSubStr, targetSubStr)) { mainForm.Invoke(new MethodInvoker(() => { mainForm.lvFileSearch.Items[index].SubItems[2].Text = "符合"; })); } else { mainForm.Invoke(new MethodInvoker(() => { mainForm.lvFileSearch.Items[index].SubItems[2].Text = "不符合"; })); } } catch { mainForm.Invoke(new MethodInvoker(() => { mainForm.lvFileSearch.Items[index].SubItems[2].Text = "失败"; })); } finally { i++; } } catch { continue; } } }