需要复制行从一个文本到另一个基于一个关键项目
本文关键字:另一个 文本 于一个 项目 一个 复制 | 更新日期: 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);