删除文本文件中包含特定字符串的行之后的其余行

本文关键字:之后 余行 字符串 文本 文件 包含特 删除 | 更新日期: 2023-09-27 18:26:10

我有一个api正在写入的文本文件(incoming_orders.log),当incoming_orders.log仍在写入时,我需要保留在某个时间之前收到的所有订单。

incomimg_orders.log示例:

订单Id=1,时间=13:02:04,数量=7,零件=8

订单Id=2,时间=13:04:47,数量=16,零件=1

订单Id=3,时间=13:05:00,数量=5,零件=2

订单Id=4,时间=13:05:01,数量=86,零件=11

订单Id=5,时间=14:58:04,数量=21,零件=19

订单ID=6,时间=14:22:40,数量=7,零件=32

订单Id=7,时间=16:15:17,数量=7,零件=32

订单Id=8,时间=16:21:23,数量=7,零件=32

订单Id=9,时间=16:35:44,数量=7,零件=32…

我需要在13:05:00或之前获得所有订单,并将它们写入新文件;

我尝试了以下操作,但它只去掉了OrderId 4,并保留了其余的

string newFile = @"path.log";
string incoming_orders = @"incoming_orders.log"
var oldLines = System.IO.File.ReadAllLines(incoming_orders);
var newLines = oldLines.Where(line => !line.Contains("Time=13:05:01"));
System.IO.File.WriteAllLines(newFile, newLines);

请让我知道我还可以补充什么来澄清。

感谢

删除文本文件中包含特定字符串的行之后的其余行

var newLines...行更改为:

var newLines = oldLines.Where(line => line.Split(',')[1].CompareTo("Time=13:05:01") < 0);

给定上面的示例行,这导致了以下新的文件内容:

OrderId=1,Time=13:02:04,Quantity=7,Part=8
OrderId=2,Time=13:04:47,Quantity=16,Part=1
OrderId=3,Time=13:05:00,Quantity=5,Part=2