2014-11-06 2 views
1

에 나는, 내 .csv 파일로 내 모두 StringBuilder의 내용을 얻기 위해 다음과 같은 문제 시도하지있어 한 :의 StringBuilder CSV

public String GetCSV() 
      { 
       System.Text.StringBuilder sb = new StringBuilder(); 

       sb.Append(m_ID.ToString()); 
       sb.Append(";"); 
       sb.Append(m_Starttime.ToString()); 
       sb.Append(";"); 
       sb.Append(m_EndTime.ToString()); 
       sb.Append(";"); 
       sb.Append(m_IsSerie.ToString()); 
       sb.Append(";"); 
       sb.Append(m_Title); 
       sb.Append(";"); 
       sb.Append(m_Description); 
       sb.Append(";"); 
       sb.Append(m_Lastchange.ToString()); 
       sb.Append(";"); 

       return sb.ToString(); 
       WriteCSV(); 
      } 


     public void WriteCSV() 
     {     
      string csvpath = @"c:\Temp\Kalender.csv"; 

      if (File.Exists(csvpath)) 
      { 
       File.Delete(csvpath); 
      } 

       using (StreamWriter sw = File.CreateText(csvpath)) 
       { 
        foreach (string CalendarItem in CalendarItem) 
        { 
         if (sb.Length > 0) 
          sb.Append(", "); 

         sb.Append(part); 
        } 

       } 

     } 

가 지금은 이미 CSV 파일을 만드는 방법을 알고 있지만 나는 더이 아이디어를 StringBuilder의 내용으로 채울 수있는 방법 foreach 루프가 올바르게 처리 할 것입니다.

+3

은 CSV 한 줄입니까? 또한'return' 다음의 코드는 실행되지 않습니다. – Jonesopolis

+1

코드가 깨진 것 같습니다. WriteCSV는 절대 호출되지 않습니다. 어쨌든, 루프가 끝나면'sw.Write (sb.ToString())'을 써야합니다. – Rob

+0

'part' 란 무엇입니까? –

답변

1

StringBuilder AppendLine을 사용하면 파일 시스템에 File.WriteAllText으로 전체 StringBuilder을 쓰는 것보다 더 효율적입니다. 살펴보기 AppendLine

return이 있기 때문에 WriteCSV();도 실행되지 않습니다.