如何删除我的文本文件的第一行
本文关键字:一行 文件 我的 何删除 删除 文本 | 更新日期: 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);
. .这应该可以正常工作:)