写入特定位置的文本文件?

时间:2011-05-12 10:46:55

标签: c#

如何在特定位置写入文件而不是像" "那样给出空间。这里我写的文件,我得到的输出就像

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() + "'" + ",");
}

有什么建议吗?

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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 =字符串允许的字符数量, - =左对齐

答案 2 :(得分:0)

您希望在编写字符串之前填充字符串。这将给出正确的空格数。请参阅本教程:http://www.java2s.com/Code/CSharp/Language-Basics/Trimmingandpadding.htm

答案 3 :(得分:0)

使用“\ t”而不是“” - 它会插入标签而不是空格。

编辑: 我的坏,没注意到你在迭代表名。 这很麻烦,但你可以根据最大的表名和当前的表名使用不同数量的\ t \ t