在使用winform編程中,需要將一些內容寫入TXT文檔,內容包含幾列,大致意思如下所示。
地點 編號
北京 1
石家莊 2
上海 3
烏魯木齊 4
問題是,內容中包含中文、數字、字母等,在寫入文檔時應用下面代碼無法使列對齊。
Writeline(string.format(“{0, -10}{1, -10}”,str1, str2));
下面給出一種方法,使寫入文檔的列對齊,主要思想是將要寫入的內容固定長度,長度不足在內容右面補空格。現將需要用到的兩個方法貼在下面。第一個輸出一定長度的空格字符串;第二個方法是,將字符串補爲固定長度。
///<summary>
///生成固定長度的空格字符串
///</summary>
///<paramname="length"></param>
///<returns></returns>
private string SpaceStrFunc(int length)
{
string strReturn = string.Empty;
if (length > 0)
{
for (int i = 0; i <length; i++)
{
strReturn += " ";
}
}
return strReturn;
}
///<summary>
///將字符串生轉化爲固定長度左對齊,右補空格
///</summary>
///<paramname="strTemp"></param>需要補齊的字符串
///<paramname="length"></param>補齊後的長度
///<returns></returns>
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));