如果我有txt文件,其内容由制表工具分隔,如此
00013 ITEM1 20.00 2 1 01 0.000 2 0.000 0.00 0.000 0.00
00014 ITEM2 20.00 1 1 01 0.000 2 0.000 0.00 0.000 0.00
由于00013
代表item.Code
且这是唯一值,我想将此item.Code
作为参数传递并查找并删除整行。
删除后的操作文件内容将是
00014 ITEM2 20.00 1 1 01 0.000 2 0.000 0.00 0.000 0.00
再一次,如何在txt文件中查找和删除整行?我应该使用linq吗?你会怎么做。
由于
答案 0 :(得分:4)
试试这个:
void FilterFile(string fileName, string newFileName, string itemCode)
{
var mathcedLines = File.ReadLines(fileName).Where(l => !l.StartsWith(itemCode));
File.WriteAllLines(newFileName, mathcedLines);
}
答案 1 :(得分:2)
是的,您可以使用LINQ。
var result = from line in File.ReadAllLines(path)
where !line.StartsWith("00013")
select line;
File.WriteAllLines(path + "new", result);
这将涵盖文件操作。至于你的其余问题,我承认我不会100%理解你的要求。
您的文件操作需要考虑的其他选项包括将行加载到List
,然后使用FindIndex()
然后RemoveAt()
。这个方法只删除一个项目,这是好的,给定您对数据的约束,我们要查找的值是唯一的。