2011-05-12 236 views
1

如何寫一個文件中的特定位置,而不是像" "。在這裏我寫一個文件給予空間,我得到的輸出是一樣在特定位置寫入文本文件?

TIMESTAMP    'ATRS_ACCT_TIMESTAMP', 
OU_ID    'ATRS_ACCT_OU_ID', 
COMPANY_CODE    'ATRS_ACCT_COMPANY_CODE', 
BU_ID    'ATRS_ACCT_BU_ID', 

,但我需要這樣的

TIMESTAMP   'ATRS_ACCT_TIMESTAMP', 
OU_ID    'ATRS_ACCT_OU_ID', 
COMPANY_CODE  'ATRS_ACCT_COMPANY_CODE', 
BU_ID    'ATRS_ACCT_BU_ID', 
輸出

這裏是我的代碼

string[] ss = new string[tblSchema.Rows.Count]; 
for (int i = 0; i < tblSchema.Rows.Count; i++) 
{ 
    ss[i] = (tblSchema.Rows[i]["ColumnName"].ToString()); 
    dest.WriteLine(ss[i].ToUpper() + "    " + 
        "'" + textBox2.Text + ss[i].ToUpper() + "'" + ","); 
} 

什麼建議嗎?

回答

6

使用String.Format()並指定字段的字段長度。事情是這樣的:

var line = String.Format("{0,-20} '{1}{0}',", ss[i].ToUpper(), textBox2.Text); 
// "{0,-20}" - Print the first item using a minimum of 20 characters left aligned 
dest.WriteLine(line); 
0

使用「\ t」替代「」 - 它插入製表符而不是空格。

編輯: 我的不好,沒有注意到你在迭代表名。 這很不好意思,但是您可以根據最大的表名和當前表名稱使用不同數量的\ t ...

+0

這隻會如果所有表中的工作名稱在相同的選項卡邊界內完成。 – forsvarir 2011-05-12 10:52:00

+0

我沒有注意到他使用循環的列名稱,否則我會建議使用盡可能多的\ t根據需要... 這是醜陋的,但你可以使用\ t根據最大的表名相對到當前表名。 – Gal 2011-05-12 10:55:26

5

也許這有助於對理解:

string txt = "Hello World"; 
    string txt2 = "Test"; 
    string txt3 = "Let's go"; 

    string line = String.Format("{0,-15} {1,-10} {2,10}", txt, txt2, txt3); 

    Console.WriteLine(line); 
    Console.ReadLine(); 

說明:

這將對準位置0-15之間留有定位文本

{0,-15} =第一條帶克[TXT],1 =文本,-15 =允許的字符串,字符的量 - =左對齊

這將定位文本位置16-26右之間對準:

{ 1,10} =第二串[TXT2],1 =文本,10 =允許的字符串的字符量,右對齊

這將使對準的位置27-37左側之間的文本:

{2,-10} =第三串[txt3],2 =文本,-10 =允許的字符串,字符的量 - =左對齊

相關問題