如何在一个特定的位置写一个文件,而不是像" "我这样写空间.我正在写一个文件,我得到的输出就像是
TIMESTAMP 'ATRS_ACCT_TIMESTAMP',
OU_ID 'ATRS_ACCT_OU_ID',
COMPANY_CODE 'ATRS_ACCT_COMPANY_CODE',
BU_ID 'ATRS_ACCT_BU_ID',
Run Code Online (Sandbox Code Playgroud)
但我需要像这样的输出
TIMESTAMP 'ATRS_ACCT_TIMESTAMP',
OU_ID 'ATRS_ACCT_OU_ID',
COMPANY_CODE 'ATRS_ACCT_COMPANY_CODE',
BU_ID 'ATRS_ACCT_BU_ID',
Run Code Online (Sandbox Code Playgroud)
这是我的代码
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() + "'" + ",");
}
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
使用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);
Run Code Online (Sandbox Code Playgroud)
小智 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();
Run Code Online (Sandbox Code Playgroud)
说明:
这将文本定位在左对齐位置0-15之间:
{0,-15} =第一个字符串[txt],1 =文本,-15 =字符串允许的字符数, - =左对齐
这将文本定位在右对齐位置16-26之间:
{1,10} =第二个字符串[txt2],1 =文本,10 =字符串允许的字符数,右对齐
这将文本定位在左对齐的位置27-37之间:
{2,-10} =第三个字符串[txt3],2 =文字,-10 =字符串允许的字符数量, - =左对齐