2014-04-30 5 views
-1

여기에 숙제가 있습니다. 데이터 입력, 계정 번호, 이름, 성, 균형에 대한 4 개의 텍스트 상자가있는 양식을 만들었습니다. 4 개의 버튼, 파일 작성, 파일에 데이터 저장, 지우기 및 종료가 있습니다. 기본적으로 모든 프로그램은 텍스트 파일을 만든 다음 텍스트 상자에 데이터를 입력 한 다음 데이터 파일을 저장하여 내가 작성한 텍스트 파일에 데이터를 저장합니다. 지우기와 나가기는 이미 끝났고 텍스트 파일을 만들 때까지 프로그램을 작동 시켰습니다. 이제 텍스트 파일에 입력 한 데이터를 실제로 쓰는 방법을 올바른 방향으로 가르쳐 줄 사람이 필요합니다. 여기 내 코드가 있습니다. 미리 감사드립니다.C# 텍스트 파일에 데이터 쓰기

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.IO; 

namespace Chapter_17_Ex.Sample_1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void btnCreate_Click(object sender, EventArgs e) 
     { 
      SaveFileDialog file = new SaveFileDialog(); 
      file.FileName = "client.txt"; 
      file.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
      file.ShowDialog();   

      StreamWriter filewrite = new StreamWriter(file.FileName);   



     } 

     private void btnSave_Click(object sender, EventArgs e) 
     { 
      TextWriter file = new TextWriter 

     } 

     private void btnClear_Click(object sender, EventArgs e) 
     { 
      txtAccount.Clear(); 
      txtBalance.Clear(); 
      txtFirstName.Clear(); 
      txtLastName.Clear(); 
     } 

     private void btnExit_Click(object sender, EventArgs e) 
     { 
      Application.Exit(); 
     } 
    } 
} 
+0

[StreamWriter] (http://msdn.microsoft.com/en-us/library/system.io.streamwriter (v = vs.110))의'Write' 및'WriteLine' 메서드를 살펴 보았습니까? aspx)? 또한'using' 블록에서'StreamWriter'를 사용하여 사용 후에 폐기되는지 확인해야합니다. –

+0

StreamWriter 클래스를 사용하고 있다는 것을 이미 알고 있었기 때문에 MSDN 항목을 읽지 않은 이유는 무엇입니까? – catfood

+0

다른 게시물 및 MSDN을 사용해 주셔서 감사합니다. 나중에 최종 코드를 게시 하겠지만, 충분한 평판 포인트가 없기 때문에 캔트가 나옵니다. 또한 응답 코드를 올리려면 적절한 에티켓이 필요합니다. 의견을 보내 주셔서 감사합니다. – user3530547

답변

2

해당 StreamWriter 인스턴스를 생성하면 올바르게 작동합니다. 지금하고 싶은 것은 해당 클래스의 WriteLine() 메소드를 사용하는 것입니다.

File.Create(file.FileName).Close(); // replace the StreamWriter code with this 

해당 파일에 쓸 수있는 간단한 방법의 경우 :

파일에 대한
private void btnCreate_Click(object sender, EventArgs e) 
      { 
       SaveFileDialog file = new SaveFileDialog(); 
       file.FileName = "client.txt"; 
       file.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; 
       file.ShowDialog();   

       using(StreamWriter filewrite = new StreamWriter(file.FileName)) 
       { 
        filewrite.WriteLine(String.Format("First Name is {0}", txtFirstName.Text) ); 
        //use Write() or WriteLine() again as needed. 
       } 
      } 
0

가 사용할 수있는 생성 : 그것은 using 블록에 그 StreamWriter를 인스턴스를 래핑하는 것도 좋은 생각이다
string line = string.Join(",", txtAccount.Text, txtBalance.Text, txtFirstName.Text, txtLastName.Text) + System.Environment.NewLine; 
File.AppendAllText(file.FileName, line); 

또한 'SaveFileDialog 파일'을 메소드 로컬 변수가 아닌 클래스 필드로 이동해야합니다.

출력 형식을 지정하지 않았습니다. 내가 선택한 것은 CSV이지만 입력을 "도망 칠"수는 없기 때문에 쉼표로 입력 내용을 엉망으로 만들지 않아야합니다. 그 부분은 당신에게 달려 있습니다.

File.CreateFile.AppendAllText을 사용하십시오. 실제 입력/출력 주위에 using을 넣지 않아도됩니다.