好的,我正在创建一个保存文件的功能。我遇到了一个问题,当我从多行文本框保存数据时,它将x行数保存为文本文件中的x行数。
例如,如果用户输入:
line one
line two
line three
它会显示为:
line one
line two
line three
因为我希望它显示为:
line one \n line two \n line three \n
我的代码是:
savefile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
savefile.Title = "Save your file";
savefile.FileName = "";
savefile.Filter = "ChemFile (*.cd)|*.cd|All Files|*.*";
if (savefile.ShowDialog() != DialogResult.Cancel)
{
// save the text file information
for (int i = 0; i < noofcrit; i++)
{
cdfile[i] = crittextbs[i].Text;
}
}
// Compile the file
SaveFile = savefile.FileName;
System.IO.File.WriteAllLines(SaveFile, cdfile);
如何将多行文本文件保存为一行?感谢。
答案 0 :(得分:4)
将Newline
字符替换为@" \n "
或" \\n "
,使用@
忽略任何转义字符
string s= yourTextBox.Text.Replace(Environment.NewLine, @" \n "));
答案 1 :(得分:2)
我想你可能需要做这样的事情。我真的不确定最好的方法是显示转义字符。另外,我会使用StreamWriter。
string myData = txtMyTextBox.Text.Replace("\r"," \\r ").Replace("\n"," \\n ");
using(System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath))
{
sw.Write(myData);
}
答案 2 :(得分:2)
如果你在字符串数组中得到多行字符串,你可以将它们连接成一行:
string[] multiline = new []{"multi","line","text"};
string singleLine = string.Join(@"\n",multiline);
如果它只是一行,那么简单的替换就可以了,
string singleLine = multiline.Replace("\r",string.Empty).Replace("\n",@"\n");
答案 3 :(得分:1)
真的是一行;)
取决于平台的多行文本框(此处为Win32)将保存为:
线\ r \ n 行\ r \ n 线\ r \ n
所以你只需要用\ n或者你想要的任何字符替换替换\ r \ n。