需要复制行从一个文本到另一个基于一个关键项目

本文关键字:另一个 文本 于一个 项目 一个 复制 | 更新日期: 2023-09-27 18:06:41

我试图将行从一个文本文件复制到另一个文本文件,其中包含一个关键项(例如:"2011")。以下是我的源文本中出现的行。

PensonReport: 1/11/2010 11:14:21 AM,索引和长度必须指向字符串中的位置。参数名称:长度,子ProcessDateHeader_BeforePrint, ReportRequestID: 24614361, DALBATCHDEV01

ReportRequest: 8/16/2011 10:02:26 AM,过程或函数'prcEXT602'期望参数'@CorrespondentOfficeID',该参数未提供。,子ExecuteStoredProc, reportrequesttid: 49474706, DALBATCHDEV01

我的代码的问题是,它不能识别EOL,并打印它的全部。注意:每一行都从字符串ReportRequest开始。我该怎么做呢?

需要复制行从一个文本到另一个基于一个关键项目

您将需要从StreamReader开始,并让它打开您的第一个文件。

然后使用StreamWriter将信息写出来。

接下来与流写入器一起使用while循环来查看每行,然后您应该能够使用。

我的c#语法可能有问题,如果我有什么问题,请留下注释。

string line;
using (StreamReader reader = new StreamReader("file.txt"))
using (StreamWriter writer = new StreamWriter("newfile.txt"))
//Use a while loop that reads each line until there are none left
while ((line = reader.ReadLine()) != null
{
         line = reader.ReadLine();
         if (line.contains("your string here"))
         then writer.WriteLine();
}

编辑:添加代码以更好地回答问题

        string line;
        String Report = "ReportRequest";
        using (StreamReader reader = new StreamReader("file.txt"))          
        using (StreamWriter writer = new StreamWriter("newfile.txt"))

            while (reader.ReadLine() != null)                   
            {
                if (reader.ReadLine().StartsWith(Report))
                {
                    //writes/starts a new line beginning with ReportRequest
                    writer.WriteLine(line);
                }
                else {
                    //appends info to same line (beginning with a space)
                    writer.Write(" " + line);
                }                       
                }

如果每行都以"ReportRequest"开头使用

string[] splits = mybigstring.Split("ReportRequest"); 

如果这是你想要的?

请试着这样写:

string[] lines = File.ReadAllLines("oldFile.txt")
    .Where(s => s.Contains("your_text")).ToArray();
File.WriteAllLines("newFile", lines);
相关文章: