Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何删除文本文件中的特定行?_C#_Winforms_Io - Fatal编程技术网

C# 如何删除文本文件中的特定行?

C# 如何删除文本文件中的特定行?,c#,winforms,io,C#,Winforms,Io,我有个小问题。让我解释一下工作场所 我的文本文件结构: X_偏移量0 Y_偏移量0 IDSTART 0001 222 222 222 222 0002 250 500 250 0003 1700 500 500 250 0004 900 600 500 250 0005 1350 250 500 250 伊登德 我必须做的是找到IDSTART-IDEND块并删除它们之间的特殊行 示例:用户集id1 123 124 126=>id1表示ID,123表示中心X,124表示中心Y,125表示中心Z,1

我有个小问题。让我解释一下工作场所

我的文本文件结构: X_偏移量0 Y_偏移量0 IDSTART 0001 222 222 222 222 0002 250 500 250 0003 1700 500 500 250 0004 900 600 500 250 0005 1350 250 500 250 伊登德

我必须做的是找到IDSTART-IDEND块并删除它们之间的特殊行

示例:用户集id1 123 124 126=>id1表示ID,123表示中心X,124表示中心Y,125表示中心Z,126表示半径

工作场所: 用户将在文本框中输入id号(如id5),然后单击按钮删除以“id5”开头的整行

这可能吗?如果是的话,我怎么做

[改进版2]

好的,我做了一些改变,现在可以用了。但是,有一个问题

FileStream fs=newfilestream(“C:\hucre.txt”,FileMode.Open); StreamReader okuma=新StreamReader(fs); 字符串Metin=okuma.ReadToEnd(); char[]Ayrac={'\n'}; MetinSplit=Metin.Split(Ayrac)

for(int i=0;i
}

这里的问题是这个

当我从文件hucre.txt读取到我的tempArrayList时,它会像下面这样写入数组

X\u偏移量0\r\n Y\u偏移量0\r\n IDSTART\r\n 0001 222\r\n 0002 250 500 250\r\n 0003 1700 500 500 250\r\n 0004 900 600 500 250\r\n 0005 1350 250 500 250\r\n 伊登德

它会再添加一个\r.

所以,当我想阅读“hucre.txt”中的内容时, 我做不到,因为 它变成这样0001 222*\r\r\n*

我怎样才能删除它

我真的很绝望,请帮助我:/


向您致意……

我并没有通读您的所有代码,但您的I/O逻辑非常复杂且低效

基本思想:

using (var reader = File.OpenText(orgFileName))
using (var writer = File.CreateText(tmpFileName))
{
    while (true)
    {
       string line = reader.ReadLine();
       if (line == null)
         break; // done

       // logic to analyze / track content

       if ( Is_special_line)
       {
          // do something, or maybe nothing (skip)
       }
       else
       {
          writer.WriteLine(line);
       }
    }
}

File.Delete(orgFilename);
File.Rename(tmpFilename, orgFilename);

“它不起作用”是一个糟糕的问题描述。什么事没有发生?发生了什么事?错误?异常?这是一个质量很差的问题,您不应该期望这里的人调试大块代码。你试过在调试器中跟踪你的代码吗?你有例外吗?您是否尝试过简化代码以定位问题?我已更改了问题。也许你现在可以看看了。。
using (var reader = File.OpenText(orgFileName))
using (var writer = File.CreateText(tmpFileName))
{
    while (true)
    {
       string line = reader.ReadLine();
       if (line == null)
         break; // done

       // logic to analyze / track content

       if ( Is_special_line)
       {
          // do something, or maybe nothing (skip)
       }
       else
       {
          writer.WriteLine(line);
       }
    }
}

File.Delete(orgFilename);
File.Rename(tmpFilename, orgFilename);