示例#1
0
        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 = "失败";
                }));
            }
        }
示例#2
0
        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;
                }
            }
        }