Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从c#中的文件中读取特定字符串?_C# - Fatal编程技术网

如何从c#中的文件中读取特定字符串?

如何从c#中的文件中读取特定字符串?,c#,C#,我正在开发一个项目,在这个项目中,我需要从文本文件中读取一个特定的名称,并将其与文本框值匹配,如果它将匹配,则显示一条消息,否则将执行其他一些工作 它包含名称,如果它与文本框值匹配,则显示成功消息,否则显示失败消息 这是我的代码,在这段代码中它读取了所有的文本,而不是一个特定的文本。 如果找到字符串,则不需要移动到下一个要读取的单词 我的结果总是不我不知道为什么 private async void button2_Click(object sender, EventArgs e) {

我正在开发一个项目,在这个项目中,我需要从文本文件中读取一个特定的名称,并将其与文本框值匹配,如果它将匹配,则显示一条消息,否则将执行其他一些工作

它包含名称,如果它与文本框值匹配,则显示成功消息,否则显示失败消息

这是我的代码,在这段代码中它读取了所有的文本,而不是一个特定的文本。 如果找到字符串,则不需要移动到下一个要读取的单词

我的结果总是不我不知道为什么

private async void button2_Click(object sender, EventArgs e)
{
    using (OpenFileDialog ofd =new OpenFileDialog(){ Filter = "Text Documents|*.txt", Multiselect=false, ValidateNames = true})
    {
        if(ofd.ShowDialog()==DialogResult.OK)
        {
            using (StreamReader sr = new StreamReader(ofd.FileName))
            {
                if(textBox1.Text == await sr.ReadLineAsync())
                {
                    MessageBox.Show("ok");
                }
                else
                {
                    MessageBox.Show("no");
                }
            }
        }
    }

试着两边都修剪一下,或者把它们做成小写, 像


如果答案总是否定的,那么字符串就不一样了。你调试过这个吗?一行一行地穿过它?检查值,包括空格,例如新行字符?为什么要使用StreamReader而不是File.ReadAllText?在我的例子中没有新行,它只会在一行中添加文本。没有字符串总是相同的,你可以说它是复制粘贴的,没有我没有调试它。当我编写语音程序时,会发生同样的事情,发现两者都必须具有相同的大小写。例如一棵又一棵。即使是同一个词,一个是大写,另一个是小写。两者必须是相同的外壳。除非你打电话给ToLower();
if(textBox1.Text.Trim().ToLower() == await sr.ReadLineAsync().Trim().ToLower())
{
}