C# 将文本文件行逐行移动,删除第一行
如何根据特定行的条件xyz=true,在删除特定行后将文本文件行移位1。我想用CC# 将文本文件行逐行移动,删除第一行,c#,.net,logic,C#,.net,Logic,如何根据特定行的条件xyz=true,在删除特定行后将文本文件行移位1。我想用C 对小文件(可以完全加载到内存中的文件)执行此操作的一种简单方法是使用File.ReadAllLines()获取行的字符串[]。这样,您就可以在strings数组中循环,并对每个数组进行测试,以确定是否应该将其写入新文件 最近这里也出现了类似的问题 如果要将输出写入新文件,则无需担心将所有后续行向上移动,删除整行也将删除行结尾字符 希望这有帮助安全的方法是将未删除的行写入临时文件,如果一切正常,则将临时文件与原始文件
对小文件(可以完全加载到内存中的文件)执行此操作的一种简单方法是使用
File.ReadAllLines()
获取行的字符串[]
。这样,您就可以在string
s数组中循环,并对每个数组进行测试,以确定是否应该将其写入新文件
最近这里也出现了类似的问题
如果要将输出写入新文件,则无需担心将所有后续行向上移动,删除整行也将删除行结尾字符
希望这有帮助安全的方法是将未删除的行写入临时文件,如果一切正常,则将临时文件与原始文件交换,然后删除旧文件。如果更改中途出现IO错误,不这样做可能会损坏文件。
file.writeAllines(filePath,file.ReadAllLines(filePath).Where(line=>!line.Contains(“xyz”)代码>(这应该是可行的,但是考虑一下关于安全处理I/O错误的@ DuHurCH注释)非常感谢特里沃
using (StreamWriter writer = new StreamWriter(file))
{
while ((line = rows[rowIndex++]) != null)
{
if( line contains xyz )// i know the logic to find this;
{
delete this line and shift all below lines one up;
}
}
}