2012-10-29 3 views
0

나는 이것을 수행하는 방법을 몇 시간 씩 들여다 보았으며, 각 루프에 대해 생각해 보는 것이 가장 좋습니다. Stream Writer.목록 상자에서 C# Win Form 형식으로 .csv 파일로 저장

여러 가지 방법으로 시도해 봤는데 어쩌면 내 오류를보기에 충분하지 않을 수도 있습니다. 누구든지 위대 할 수 있다면 도움이 될 것입니다.

현재 파일이 만들어지고 첫 번째 줄에 "System.Windows.Forms.ListBox + ObjectCollection"이라는 파일 만 생성됩니다. 이는 값을 제대로 전달하지 못한다는 것을 의미합니다.

 private void btnSave_Click(object sender, EventArgs e) 
    { 
     StreamWriter myOutputStream = new StreamWriter("Myfile.csv"); 
     myOutputStream.WriteLine(lstBox.Items); 
     myOutputStream.Close(); 
     //foreach (object item in lstBox.Items) 
     //string listString = lstBox.SelectedItem.ToString(); 
     //StreamWriter streamBox = File.CreateText(@"testfile.csv"); 
     //streamBox.Write(listString); 
     //streamBox.Close(); 
     //if (SaveFileDialog.ShowDialog() == DialogResult.OK) 
     //{ 
     // System.IO.StreamWriter streamBox = new System.IO.StreamWriter(SaveFileDialog); 
     // foreach (object item in lstBox.Items) 
     //  streamBox.WriteLine(item.ToString()); 
     // streamBox.Close(); 
     //} 
    } 

모든 주석 부분은 내가 과거에 시도한 것들 :

여기에 코드입니다. 하지만 지금은 가장 단순한 방법이 상위 세 줄이라고 생각합니다.

입력 해 주셔서 감사합니다.

답변

3

ListBoxObjectCollectionlistBox.Items을 쓰고 있습니다.

StreamWriter myOutputStream = new StreamWriter("Myfile.csv"); 

foreach (var item in lstBox.Items) 
{ 
    myOutputStream.WriteLine(item.ToString()); 
} 

myOutputStream.Close(); 

는 또한 여기에 using 블록을 사용할 수 있습니다 :

using (StreamWriter myOutputStream = new StreamWriter("Myfile.csv")) 
{ 
    foreach (var item in lstBox.Items) 
    { 
     myOutputStream.WriteLine(item.ToString()); 
    } 
} 
+0

대단히 감사합니다. 완벽하게 작동합니다. 내가 왜 그것을 볼 수 없었는지 모르겠다. –

0

첫째는 ListBox에 무엇이 각 항목을 작성하는 foreach 루프를해야합니까? 목록 상자의 항목이 문자열 항목 일 경우 다음을 수행 할 수 있습니다.

StreamWriter myOutputStream = new StreamWriter("Myfile.csv"); 
foreach (string item in lstBox.Items) { 
    myOutputStream.WriteLine(item); 
} 
myOutputStream.Close(); 
관련 문제