我遇到了一个问题,当我将文本写入第二个文件时,它在包含linebreaks
的写字板中显示正常,但在记事本中,copyText
和richTextBox1.Text
的所有文本都出现在一个很长的行中。
我该如何解决这个问题?如果有人可以在我的代码中包含代码片段,那么我将不胜感激,因为我可以看到您所做的和更改的内容,我可以保留它以供 futr 参考。
我的代码在下面,我从文本文件(Testfile.txt
)中获取文本并将其插入richTextBox1
,然后当我单击按钮时,文本被复制到richText Box2
并写入第二个文件(_Parsed.txt
)。
我在文本行上做了一个消息框,它显示的文本全部没有换行符。我不确定这是否是问题,但我确实需要帮助,因为截止日期是明天,这是我唯一需要解决的事情,我已经完成了。
string Chosen_File = "C:\_Testfile.txt";
string Second_File = "C:\_Parsed.txt";
string wholeText = "";
private void mnuOpen_Click(object sender, EventArgs e) {
//Add data from text file to rich text box
richTextBox1.LoadFile(Chosen_File, RichTextBoxStreamType.PlainText);
//Read lines of text in text file
string textLine = "";
StreamReader txtReader;
txtReader = new StreamReader(Chosen_File);
do {
textLine = textLine + txtReader.ReadLine() + " ";
}
//Read line until there is no more characters
while (txtReader.Peek() != -1);
richTextBox1.Text = textLine;
txtReader.Close();
}
}
private void Write(string file, string text) {
//Check to see if _Parsed File exists
//Write to _Parsed text file
using(StreamWriter objWriter = new StreamWriter(file)) {
objWriter.Write(text);
objWriter.Close();
}
}
private void newSummaryMethod(string copyText) {
//Write into richTextBox2 all relevant text
copyText = richTextBox1.Text;
wholeText = richTextBox1.Text + copyText
Write(Second_File, wholeText);
}
private void btn1_Click(object sender, EventArgs e) {
newSummaryMethod(copyText);
}
问题可能出在文本文件中的换行符上。文本框期望rn
序列作为行尾的指示,并且您的文本文件可能只包含n
。尝试对代码进行此更改:
do {
textLine = textLine + txtReader.ReadLine() + "rn";
}
//Read line until there is no more characters
while (txtReader.Peek() != -1);
问题是你永远不会在代码中的文件中添加新行。 您正在使用不会生成新行的objWriter.Write(text);
。
您可以改用objWriter.WriteLine(text);
,它会自动在末尾添加新行字符。
我认为查看文件的不同之处在于因为"写字板"中打开了"自动换行"选项,它会导致将长行分成多行。