2010-01-03 4 views
0

나는 나가를 열 때 간단이 코드제대로

FileStream fs = new FileStream("Scores.txt", FileMode.OpenOrCreate, FileAccess.Write); 
     StreamWriter sw = new StreamWriter(fs); 
     sw.Write("Name: " + name_box.Text + " Time " + label1.Text); 
     sw.Close(); 

은 LABEL1 지금 folowing

private void timer1_Tick(object sender, EventArgs e) 
    { 
     // Format and display the TimeSpan value. 
     TimeSpan ts = stopWatch.Elapsed; 
     string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", 
      ts.Hours, ts.Minutes, ts.Seconds, 
      ts.Milliseconds/10); 
     label1.Text = elapsedTime; 
    } 

같이 타이머 틱에 할당받은되어 있습니다 텍스트 파일은 내가 볼 수있는 다음과 같은 결과 완벽하지만 (무엇

Name: Tony Time 00:00:06.67Text: Time [System.Windows.Forms.Timer], Interval: 100 

텍스트 : 시간 [System.Windows.Forms.Timer]

label1.Text = timer1.ToString(); 

를 작성해야 : 간격 :

+1

timer1.ToString에서 얻을 수있는 출력과 매우 비슷합니다. 어딘가에서 그런 실수가 없다고 확신합니까? –

+2

'StreamWriter'는 여분의 물건을 쓰지 않습니다. 당신은 그것을 쓰고 싶지 않은 것을 보내고 있습니다. 이것을 반영하기 위해 제목을 편집 중입니다. – jason

+0

@ Jason : 사실 당신은 틀 렸습니다. ;) 문제는 여분의 물건이 보내지는 것이 아니라, 여분의 물건이 이미 파일 *에있는 문제였습니다. – Aaronaught

답변

1

. 이렇게해도 파일의 이전 내용은 지워지지 않습니다. 파일을 삭제하고 프로그램을 다시 실행하면 그 여분의 내용이 표시되지 않을 것으로 판단됩니다.

FileMode.Create 또는 FileMode.Append 중 하나를 사용하는 것이 좋습니다. 결과를 덮어 쓰려면 첫 번째를 사용하고 원한다면 두 번째를 사용하십시오.

+0

고맙습니다 그것의 일 – Tony

2

당신은 아마 다른 곳에서 코드에서 다음 줄을 가지고 100) 나는 그

고맙습니다 사전에 TXT에 표시하지 않으려는 코드에 label1이라는 단어를 클릭 한 다음 모든 참조 찾기를 클릭하여 다른 항목을 확인하십시오. 그런데


대신 스트림을 생성하는, 당신은이 같은 File.WriteAllText을 사용한다 : 당신은 생성자에서 FileMode.OpenOrCreate을 사용하는

File.WriteAllText("Scores.txt", "Name: " + name_box.Text + " Time " + label1.Text); 
+0

그래 확실하지 않아. (label1.Text = timer1.ToString();) – Tony

+0

@ 토니 : 정말, 정말로, 정말 확실합니까? 코드를 실행하면 그대로 작동합니다. –