C# .NET 跨硬返回搜索文本

本文关键字:搜索 文本 返回 NET | 更新日期: 2023-09-27 18:35:22

由于我无法通过搜索工作找到解决方案,我相信我可能遇到了一个独特的问题。从本质上讲,我正在为我的妻子在 c#.NET 中创建一个基因查找/创建应用程序,并使用 RichTextBox 让她能够突出显示、着色、导出等她需要的信息。我为它制作了几种自定义方法,因为我相信我们都知道,Microsoft的 RichTextBox 给人们留下了很多想象力。

无论如何,这是我的问题:我需要能够在硬回报中搜索一个术语。用户有 60 个字母间隔的字符串,他们需要搜索可能跨越硬返回障碍的项目。例如,假设我有 2 行(为简单起见,我会将它们缩短):AAATTTCCCGGGTTTCCCGGGAAA

如果用户运行 GGGTTT 搜索,即使其中有换行符/硬回车,我也需要能够提取结果。对于我的生活,我想不出一个好方法来做到这一点,并且仍然在RichTextBox中选择结果。我总能找到结果,但获得 RichTextBox 的正确索引是我无法找到的。

如果需要,我不反对richTextBox.SaveFile()和LoadFile()并手动将rtf文本解析为字符串。它不必很漂亮,在这种情况下,它只需要工作。

感谢您提供的任何帮助/指导。

这是一个相关的片段:

        //textbox 2 search area (examination area)
    private void button5_Click(object sender, EventArgs e)
    {
        textBox3.Text = textBox3.Text.ToUpper();
        if (textBox3.Text.Length > 0)
        {
            List<string> lines = richTextBox2.Lines.ToList();
            string allText = "";
            foreach (string line in lines)
                allText = allText + line.Replace("'r", "").Replace("'n", "");
            if (findMultiLineRTB2(allText, textBox3.Text) != -1)
            {
                richTextBox2.Select(lastMatchForRTB2, textBox3.Text.Length);
                richTextBox2.SelectionColor = System.Drawing.Color.White;
                richTextBox2.SelectionBackColor = System.Drawing.Color.Blue;
            }//end if
            else
                MessageBox.Show("Reached the end of the sequence", "Finished Searching");
        }//end if
    }//end method
    private int findMultiLineRTB2(string rtbText, string searchString)
    {
        lastMatchForRTB2 = rtbText.IndexOf(searchString, lastMatchForRTB2 + 1);
        return lastMatchForRTB2;
    }

C# .NET 跨硬返回搜索文本

所以我做了一个假设:你想在所有行中搜索一个单词,每行长度为 60 个字符。所需的结果是该单词的索引。

你只需要构建一个没有换行符的字符串,例如使用 string.Join

string allText = string.Join("", richTextBox.Lines);
int indexOf = allText.IndexOf("GGGTTT");  // 9 in your sample