我的客户需求具有标题,正文和页脚格式的固定长度文件记录,但在页脚中他们希望有一个1966长的空白空间。我尝试使用不同的butttons作为页眉和页脚和身体,但无法在最后指定空间。这是我的代码..在创建页脚时空间不起作用。
FileStream fs = new FileStream(@"C:\Users\IT-Administrator\Desktop\ee.txt", FileMode.Open, FileAccess.ReadWrite);
fs.Seek(0, SeekOrigin.End);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(comboBox6.Text + textBox2.Text + textBox3.Text + textBox4.Text + **SPACE(1966)** );
sw.Close();
fs.Close();**strong text**
答案 0 :(得分:6)
使用String.PadRight()填充字符串。
比如说 max 字符串长度是2000个字符,你可以这样做:
string example = "Example";
string full_example = example.PadRight(2000);
这将采用原始字符串的长度,并用空格填充它,直到达到所需的宽度。
在你的情况下,如果你想要1966个空格,你可以这样做:
string spaces = String.Empty.PadRight(1966);
答案 1 :(得分:1)
如果您想创建一个由1966个空格组成的字符串,您可以使用带有字符的string constructor来重复它:new String(' ', 1966)
。
答案 2 :(得分:1)
您可以使用接受格式说明符的WriteLine重载来完成此操作。
如果您希望最后一个元素总共占用1966个字符,您可以写:
using(var sw=new StreamWriter(@"C:\Users\IT-Administrator\Desktop\ee.txt"))
{
sw.WriteLine("{0}{1}{2}{3,-1966}",comboBox6.Text ,textBox2.Text,
textBox3.Text,textBox4.Text );
}
通过这种方式,可以更轻松地查看实际字符串的外观。例如,您可以看到实际上是在一个连续字符串中连接所有元素。也许,你想要做的是用空格分隔它们,例如:"{0} {1} {3} {4,-1966}"
如果您希望最后一个元素后跟1966个空格:
using(var sw=new StreamWriter(@"C:\Users\IT-Administrator\Desktop\ee.txt"))
{
sw.WriteLine("{0}{1}{3}{4}{5,-1966}",comboBox6.Text ,textBox2.Text,
textBox3.Text,textBox4.Text,' ');
}
在上面的代码中,using
确保即使发生异常,StreamWriter也会关闭。该代码还通过使用路径参数创建StreamWriter来避免创建StreamWriter和FileStream