C#写入TXT文档时 列对齐

 

在使用winform编程中,需要将一些内容写入TXT文档,内容包含几列,大致意思如下所示。

地点                   编号

北京                   1

石家庄              2

上海                   3

乌鲁木齐         4

问题是,内容中包含中文、数字、字母等,在写入文档时应用下面代码无法使列对齐。

Writeline(string.format(“{0, -10}{1, -10}”,str1, str2)); 


下面给出一种方法,使写入文档的列对齐,主要思想是将要写入的内容固定长度,长度不足在内容右面补空格。现将需要用到的两个方法贴在下面。第一个输出一定长度的空格字符串;第二个方法是,将字符串补为固定长度。

///

        ///生成固定长度的空格字符串

        ///

        ///

        ///

        private string SpaceStrFunc(int length)

        {

            string strReturn = string.Empty;

            if (length > 0)

            {

                for (int i = 0; i

                {

                    strReturn += " ";

                }

            }

            return strReturn;

        }

 

 

///

        ///将字符串生转化为固定长度左对齐,右补空格

        ///

        ///需要补齐的字符串

        ///补齐后的长度

        ///

        private string alignmentStrFunc(string strTemp, int length)

        {

            byte[] byteStr =System.Text.Encoding.Default.GetBytes(strTemp.Trim());

            int iLength =byteStr.Length;

            int iNeed = length -iLength;

 

            byte[] spaceLen = Encoding.Default.GetBytes(" "); //一个空格的长度

            iNeed = iNeed / spaceLen.Length;

 

            string spaceString =SpaceStrFunc(iNeed);

            return strTemp +spaceString;

           

        }

   

最后,将生成固定长度的字符串,写入文档即可。

Writeline(string.format(“{0}{1}”,str1, str2));

你可能感兴趣的:(C#)