繁体   English   中英

ConsoleOutput格式与TextFile格式

[英]ConsoleOutput formatting vs TextFile formatting

我有一个正在生成的字符串生成器,当我在控制台中显示它时,它的格式是完美的:

在此处输入图片说明

但是当我尝试将stringbuilder.ToString()导出到文本文件时,格式在翻译中丢失:

在此处输入图片说明

foreach (var item in companyList.Keys)
            {
                reportForText.AppendLine(item.ToString());

                foreach (var user in companyList[item])
                {


                        reportForText.Append(String.Format("\n{0,-22}: ", user.Name));
                        foreach (var group in user.GroupList)
                        {
                            reportForText.Append(String.Format("{0}\n", group).PadRight(25 + group.Length));
                        }
                    }
                }
                reportForText.AppendLine();
                reportForText.AppendLine();
            }

Notepad.exe不支持\\n作为换行符,它仅支持(据我所知) \\r\\n作为换行符。 您可以通过使用Environment.NewLine而不是\\n来换行(甚至直接使用\\r\\n )来解决此问题:“对于非Unix平台,包含” \\ r \\ n“的字符串,或包含” \\ n“用于Unix平台”。 如今,它已不是“ Windows,Unix或Mac”,因为如您所见,它取决于程序本身以及它定义的代表“换行符”的字符,因此IMO这是有关Notepad.exe及其工作方式的问题而且,即使您使用的是Unix还是非Unix,这都无关紧要,尽管该语言支持Environment.NewLine Windows Console本身支持\\n作为换行符,即使它是“非Unix”平台也证实了这一点。

您可能遇到的一个不相关的问题是所使用的字体。 默认情况下,Notepad.exe和Console都使用固定宽度的字体,因此当前所有间距都对齐。 但是,如果更改为可变宽度的字体,则冒号和其他内容将无法完全对齐。

暂无
暂无

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

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