2014-02-28 3 views
1

내 고객 requirment 헤더, 본문 및 바닥 글 형식으로 고정 길이 파일 레코드가 있지만 바닥 글에서 1966 lenght 빈 공간을 갖고 싶어. 나는 머리와 꼬리말과 몸체에 difffent 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** 

답변

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); 
} 

는 실제 문자열이 어떻게 보일지 훨씬 쉽게 이런 식으로. 예를 들어, 실제로 하나의 연속 된 문자열에서 모든 요소를 ​​결합하고 있음을 알 수 있습니다. 당신이 마지막 요소는 1,966 공백으로 따라야 할 경우 "{0} {1} {3} {4,-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을 모두 생성하는 것을 피합니다.

+0

완벽하게 해결 된 감사합니다 panagiotis .. 그게 내가 무엇을 찾고 있었는지. – preethi

6

문자열을 채우려면 String.PadRight()을 사용하십시오.

말은 최대 문자열 길이는 2000 자했다 예를 들어, 당신은 같은 것을 할 수는 도달 할 때까지

string example = "Example"; 
string full_example = example.PadRight(2000); 

이 공백 원래 문자열과 패드 밖으로의 길이를 취할 것 원하는 너비. 귀하의 경우에는

당신은이 작업을 수행 할 수 있지만 정확히 1,966 공간을 원하는 경우 : 1966 공간 구성된 문자열을 만들려면

string spaces = String.Empty.PadRight(1966); 
+0

(example.Length - 1966) – CathalMF

+0

@CathalMF - 일종의, 나는 더 많은 값 + 공간을 생각하고 있었지만 나는 그가 의미하는 것이 그들 자신의 공간의 전체 라인이라고 생각한다. 그래서 나는 그에 맞게 업데이트했다. – Lloyd

1

, 당신은 문자와 숫자를 걸리는 string constructor을 사용할 수 있습니다 반복 횟수 : new String(' ', 1966).

문자열을 특정 길이로 채우려면 PadRight 또는 PadLeft을 적절하게 사용할 수 있습니다.

관련 문제