c# - 在特定行之后读取行

标签 c# streamreader

我正在尝试这样做,以便我可以读取“检查”之后出现的所有行,我尝试使用 StreamReader 或 clicli,而无法移动到下一行,同一行是经常阅读。

下面是一个提取的.txt文件示例,文件中有很多注册表项。

文本文件

Windows Registry Editor Version 5.00


//BEFORE MORE key

[HKEY_CURRENT_USER\SOFTWARE\Thingamahoochie\WinMerge\Settings-Bar1]
"BarID"=dword:00008033
"Visible"=dword:00000000
"XPos"=dword:fffffffe
"YPos"=dword:fffffffe
"Docking"=dword:00000001
"MRUDockID"=dword:00000000
"MRUDockLeftPos"=dword:00000000
"MRUDockTopPos"=dword:00000000
"MRUDockRightPos"=dword:0000070c
"MRUDockBottomPos"=dword:000000f5
"MRUFloatStyle"=dword:00002004
"MRUFloatXPos"=dword:80000000
"MRUFloatYPos"=dword:00000000

//MORE KEY AFTER

代码

private void btnReplace_Click(object sender, EventArgs e)
{
     string check = "[HKEY_CURRENT_USER\SOFTWARE\Thingamahoochie\WinMerge\Settings-Bar1]";

     foreach (string line in File.ReadLines(_path))
     {
         if(line == check)
         {
            //need here read all line after "check"

         }
    }
}

最佳答案

您可以使用 bool 值来跟踪您是否在正确的位置:

这里我假设一个空行表示该部分的结尾。

bool readingTargetSection = false;
foreach (string line in File.ReadLines(_path))  
{
    if (readingTargetSection)
    {
        if (line.Trim() == "") {
            // or just break out of the loop
            readingTargetSection = false;
        }
        else {
            // read the line
        }
    }       
    else if (line == check)
    {
        readingTargetSection = true;
    }
}

关于c# - 在特定行之后读取行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40897424/

相关文章:

c# - 从 Java Servlet 调用 WCF Web 服务

c# - 简单实现 SHA-3 Keccak 散列到 C# 中的错误输出?

c# - 在 C# 中读取第一百万行

Java 读取 Oracle EXP 命令输出

c# - 逐行分析,如果符合条件则存储,否则忽略

C#读取网页内容Streamreader

c# - 安装时如何指定sql server的连接字符串

c# - 文本框上的 XAML 控件模板,文本框上的数据触发器

c# - 在 C# 中使用流读取大文本文件

c# - 创建、刷新 WPF TreeView 并记住没有 XAML 的扩展节点