首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中使用流线器编写已经具有新行字符的字符串?

如何在C#中使用流线器编写已经具有新行字符的字符串?
EN

Stack Overflow用户
提问于 2016-06-08 18:22:42
回答 3查看 2.3K关注 0票数 3

我有一个字符串,它在某些部分有\n个字符。我想把这个字符串写入文本文件。我尝试使用流编写器的写方法和WriteLine方法,而在这两种方法中,它都是用一行编写的。那么,是否有使用新行字符编写此字符串的简单方法,或者是否应该将其拆分为数组\n字符。

代码语言:javascript
复制
Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();
        sfd.Filter = "g-code|*.gcode;";
        if (sfd.ShowDialog() == true)
        {
            string path = System.IO.Path.GetFullPath(sfd.FileName);
            System.IO.StreamWriter writer = new System.IO.StreamWriter(sfd.OpenFile());
            writer.Write(GcodeTxt);
            writer.Dispose();
            writer.Close();
            MessageBox.Show("File is saved.", "Saved", MessageBoxButton.OK, MessageBoxImage.Information);
        }

样本GcodeTxt:“G21;度量良好!\n G90;绝对定位\n T0;选择新的挤出机\n G28 ;go G92 E0 ;set挤出机home\n M104 S73.0;设定温度\n”

其结果是;

EN

回答 3

Stack Overflow用户

发布于 2016-06-08 18:33:06

修复字符串中的行分隔符,以匹配平台所期望的内容。Windows期望\r\n。使用Environment.NewLine而不是"\n"。您的字符串以错误的方式生成。修复它正在建造的方式。

票数 2
EN

Stack Overflow用户

发布于 2016-06-08 18:36:30

Windows只读取CrLf (载货返回+线路馈送)行尾,即\r\n。如果您只放置了一个行提要字符(\n),那么记事本就会呈现它,就好像它是写在一行中一样。

尝试以类似于Notepad++的方式打开您的文件,它应该看起来像您希望的那样。

若要编写传输返回+行提要,请使用Environment.NewLine

票数 2
EN

Stack Overflow用户

发布于 2016-06-08 18:36:01

上面的答案是准确的。但是,当您想插入换行符时,也应该考虑使用StreamWriter.WriteLine而不是StreamWriter.Write

https://msdn.microsoft.com/en-us/library/system.io.streamwriter.writeline(v=vs.110).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37710087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档