我有两个小问题,我正在努力。两者都真的处理线。
1:如何将以下正则表达式代码放入Split()?
Regex(@"\r\n|\n|\r", RegexOptions.Singleline)
int num = copyText.Split().Length - 1;
//copyText is a string
2:当我从富文本框写入文本文件时,文本文件中的所有文本都显示在一行上。如何在富文本框中显示文本?
private void Write(string file, string text) {
//Check to see if _Parsed File exists
if (File.Exists(file)) {
//Write to _Parsed text file
using(StreamWriter objWriter = new StreamWriter(file)) {
objWriter.Write(text);
objWriter.Close();
}
} else {
MessageBox.Show("No file named " + file);
}
}
private void btnReplace_Click(object sender, EventArgs e) {
// Replace -ing ending words to XXXXXX code goes here...
//Write into richTextBox2
wholeText = richTextBox1.Text + oldSummary + copyText + newSummary;
Write(Second_File, wholeText);
richTextBox2.Text = wholeText;
}
答案 0 :(得分:0)
1:我建议:
int num = copyText.Split(new string[] { Environment.NewLine },
StringSplitOptions.None).Count();
2:确保richtextbox1.MultiLine设置为true
答案 1 :(得分:0)
对于第一个问题,试试这个:
int num = Regex.Split(copyText, @"\r\n|\n|\r").Count - 1;
请参阅:MSDN
对于第二个尝试:
File.WriteAllLines(FileName, richTextBox.Lines);
请阅读可能的dublicate:From RichTextBox to text files, line after line
RichTextBox.SaveFile(string path, RichTextBoxStreamType);
内置函数
答案 2 :(得分:0)
我会像这样重写Write方法:
private void Write(string file, RichTextBox box)
{
if (File.Exists(file))
{
System.IO.File.WriteAllLines(file, box.Lines);
}
else
{
MessageBox.Show("No file named " + file);
}
}
private void Write(string file, RichTextBox box)
{
if (File.Exists(file))
{
StreamWriter sw = File.CreateText(file);
for (int i = 0; i < box.Lines.Length; i++)
{
sw.WriteLine(box.Lines[i]);
}
sw.Flush();
sw.Close();
}
else
{
MessageBox.Show("No file named " + file);
}
}
如果你愿意,你也可以试试foreach。
第二个选项更复杂,但更好。
将RichTextBox作为变量传递给Write方法,如下所示:
Write(@"C:\path\to\file.ext", RichTextBox boxToWrite);