如何删除我的文本文件的第一行

本文关键字:一行 文件 我的 何删除 删除 文本 | 更新日期: 2023-09-27 18:18:08

我想在Visual Studio中创建一个Windows窗体应用程序,在单击按钮时写入文本文件。

我有一个包含

的txt文件(例如test.txt)
AAAA
BBBB
CCCC
DDDD
EOS
FFFF
GGGG
HHHH
IIII
EOS
JJJJ
KKKK
LLLL
MMMM
NNNN
EOS
EOF

然后我想把它分成许多其他的txt文件

**bag1.txt**
AAAA
BBBB
CCCC
DDDD
EOS
**bag2.txt**
EEEE
FFFF
GGGG
IIII
EOS
**bag3.txt**
JJJJ
KKKK
LLLL
MMMM
NNNN
EOS
EOF

这些是代码,

private void read3btn_Click(object sender, EventArgs e)
    {
        string fileName = textBox1.Text;
        TextReader sr = new StreamReader(fileName);
          //This allows you to do one Read operation.
        string s = sr.ReadToEnd();;
        sr.Close();
        string[] bags = s.Split(new string[] {"EOS"}, StringSplitOptions.None);
        // This will give you an array of strings (minus the EOS field)
        // Then write the files...
        System.IO.File.WriteAllText(@"D:'Program-program'tesfile'bag1.txt", bags[0] + "EOS");  //< -- Add this you need the EOS at the end field the field
        System.IO.File.WriteAllText(@"D:'Program-program'tesfile'bag2.txt", bags[1] + "EOS");
        System.IO.File.WriteAllText(@"D:'Program-program'tesfile'bag3.txt", bags[2] + "EOS" + bags[3]);
   }}

然后输出如下

**bag1.txt**
    AAAA
    BBBB
    CCCC
    DDDD
    EOS
**bag2.txt**
EEEE
FFFF
GGGG
IIII
EOS
**bag3.txt**
JJJJ
KKKK
LLLL
MMMM
NNNN
EOS
EOF

不幸的是,袋子[1]和袋子[2]中的输出在第一行中有一个空白行,是否有更新代码的方法?

如何删除我的文本文件的第一行

您的"EOS"分隔符不包含换行符。试一试:

string[] bags = s.Split(new string[] {"EOS'n"}, StringSplitOptions.None);

你的输入文件是

...DDDD'nEOS'nEEEE'n...

与你的代码分开后,你得到:

...DDDD'n  EOS  'nEEEE'n...

注意EEEE之前的前导'n。通过在分隔符中包含'n,您将得到:

...DDDD'n  EOS'n  EEEE'n...

调用.Trim()删除前导空格

好的,这不是一个大问题:)当你读取你的文件时,你会得到一个字符串,如"AAA'nBBB'nCCC'nDDD'nEOS'nEEE'nFFF'n…EOS'nJJJ'n…"如果只在"EOS"上修剪字符串,你会得到:

" AAA nCCC ' nDDD ' ' nBBB ' n"' nEEE ' nFFF ' n……"' nJJJ…"

因为Split()方法删除了"EOS"字符串,但没有删除它后面的新行:)

string[] bags = s.Split(new string[] {"EOS'n"}, StringSplitOptions.None);

. .这应该可以正常工作:)