C#如何删除我的文本文件的第一行?
我想在VisualStudio中创建一个Windows窗体应用程序,通过单击按钮即可写入文本文件 我有一个txt文件(例如test.txt),其中包含C#如何删除我的文本文件的第一行?,c#,text-files,streamreader,writer,C#,Text Files,Streamreader,Writer,我想在VisualStudio中创建一个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 E
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]);
}}
不幸的是,bags[1]和bags[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\njj\n…”
如果仅在“EOS”上修剪字符串,则会得到以下结果:
“AAA\nBBB\nCCC\nDDD\n”“\nEEE\nFFF\n.”“\nJJJ…”
因为Split()方法会删除“EOS”字符串,但不会删除它后面的新行:)
…这应该很好:)除非换行符是
\r
或\r\n
我想可能是这样。我会让OP来决定他特定的输入文本文件。它有问题,它说索引超出了数组的范围(啊,是的,非常感谢Greg调试后我终于明白了:Dhi slaks我应该把它放在哪里?在你想要修剪的字符串上。嗯,是的,我试过了,但是它在EOS处剪切了最后一行,所以输出变成IIEOS,没有换行:(
...DDDD\n EOS\n EEEE\n...
string[] bags = s.Split(new string[] {"EOS\n"}, StringSplitOptions.None);