繁体   English   中英

如何将多行文本框作为一行保存到文本文件中?

[英]How do I save a multi-line textbox as one line to a text file?

好的,我正在创建一个保存文件的功能。 我遇到了一个问题,当我从多行文本框保存数据时,它将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);

有关如何将多行文本文件保存为一行的任何想法? 谢谢。

Newline替换为@" \\n "" \\\\n " ,使用@忽略任何转义字符

   string s= yourTextBox.Text.Replace(Environment.NewLine, @" \n "));

我想你可能需要这样做。 我真的不确定最好的方法是显示转义字符。 另外,我会使用StreamWriter。

string myData = txtMyTextBox.Text.Replace("\r"," \\r ").Replace("\n"," \\n ");
using(System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath))
{
     sw.Write(myData);
}

如果在字符串数组中获得多行字符串,则可以将它们连接成一行:

string[] multiline = new []{"multi","line","text"};
string singleLine = string.Join(@"\n",multiline);

如果它只是一行,一个简单的替换就可以了,

string singleLine = multiline.Replace("\r",string.Empty).Replace("\n",@"\n");

这真是一线;)

取决于平台的多行文本框(此处为Win32)将保存为:

线\\ r \\ n线\\ r \\ n线\\ r \\ n \\ n

因此,您只需要将\\ r \\ n替换为\\ n或您想要的任何字符替换。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM