0

我在 RTB 中加载了一个日志文件,位于主窗体的另一个窗体上。我想为表单提供一个“查找”功能,这样我就可以从整个日志文件的文本框中找到我键入的关键字。然后,如果有多个结果,我想将这些关键字存储在列表中。

我已经通过代码分隔了整个日志文件:

 char[] delimiters = new char[] { ' ', '\n', '\t', ',', '.', '[', ']', ':' };
        string[] searching = searchText.Split(delimiters);
        List<string> splitResult = new List<string>();
        List<string> searchResult = new List<string>();

        foreach (string s in searching)
        {
            splitResult.Add(s);
        } 

接下来我该怎么办?任何想法?或者当我尝试打开文件时,有没有办法真正启动像记事本这样的文本编辑器?

我试过了

foreach (string s in splitResult)
        {
            if (splitResult.Contains(txtbox1.Text))
            {
                searchResult.Add(s);
            }
        }

但没有结果

提前致谢。

4

1 回答 1

0

你试过这个吗?:

string stringToSearch = "whatever";

if (Array.IndexOf(searching, stringToSearch.ToLower()) > -1)
{
    //String found
}

请注意,我包含了“ToLower()”,因为我知道您想要匹配而不关心大写。

这是一个比您正在使用的查找匹配项更快的选项。尽管如此,请记住,您打算做的事情是不可能的:您将文本框中的内容划分为其组成元素,然后在每个元素中查找整个内容。例如:文本框有1*safda*32,你把它分为“1”、“safda”和“32”,然后你打算在“1”中定位“1*safda*32”,在“safda”中,等等

我看到两个选项:

  1. 为用户创建一个包含建议的列表。也就是说,数组searching或列表中的内容splitResult(不确定为什么要创建此列表,因为它是重复的)。

  2. 为用户设置一个新的文本框以输入要搜索的术语。您可以使用我的代码来运行此功能。

于 2013-06-26T08:37:52.597 回答