在特定位置写入文本文件?
问题描述:
如何写一个文件中的特定位置,而不是像" "
。在这里我写一个文件给予空间,我得到的输出是一样在特定位置写入文本文件?
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() + "'" + ",");
}
什么建议吗?
答
使用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);
答
想要在写入字符串之前填充字符串。这将提供正确的空间数量。请参阅本教程:http://www.java2s.com/Code/CSharp/Language-Basics/Trimmingandpadding.htm
答
使用“\ t”替代“” - 它插入制表符而不是空格。
编辑: 我的不好,没有注意到你在迭代表名。 这很不好意思,但是您可以根据最大的表名和当前表名称使用不同数量的\ t ...
答
也许这有助于对理解:
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 =允许的字符串,字符的量 - =左对齐
这只会如果所有表中的工作名称在相同的选项卡边界内完成。 – forsvarir 2011-05-12 10:52:00
我没有注意到他使用循环的列名称,否则我会建议使用尽可能多的\ t根据需要... 这是丑陋的,但你可以使用\ t根据最大的表名相对到当前表名。 – Gal 2011-05-12 10:55:26