2014-09-23 18 views
5

VS 2012, Vb.Net. Net 4.0 kullanarak çalışıyorum.Vb.Net'te streamwriter kullanarak ds değişkeninden bir csv dosyası nasıl oluşturulur?

Streamwriter veya FileStream kullanarak, c: \ windows \ temp klasöründe bulunacak bir Temp csv oluşturmaya çalışıyorum. .csv dosyasının değerleri bir dize değişkeninden doldurulur. dize değişkeni

Numune değerleri nasıl dize değişkeni bir .csv dosyası yazmak için

1,2,3,411,345 
2,3,4,55,678 
5,6,7,8,9999 

.. olarak benzeyecek?

+0

Sorun belirtmeden kod sağlanıyorsunuz. Ayrıca, ';' ile bölüyorsunuz, ancak örnek verileriniz virgülle ayrılıyor. Genel olarak, ['TextFieldParser'] gibi bir kullanılabilir csv-parser kullanın (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser (v = vs.110) .aspx) - tekerleği yeniden icat etmek yerine. –

+0

Bir csv oluşturmak için TextFieldParser nasıl kullanılır ilgilenirsiniz. –

+0

@TimSchmelter, Kod çalışmasını tamamladım. Cevabı yarına kadar göndereceğim. – goofyui

cevap

3

Akış Yazıcısı'nı kullanma (sw, değişken bildirimidir). .csv dosyası yazabiliyorum.

Public Sub Test() 
     Try 

      Dim reader As StreamReader = New System.IO.StreamReader(File.OpenRead("D:\CSV\Test.csv")) 
      Dim listA As New List(Of String)() 


      If File.Exists("d:\CSV\TestOut.csv") Then 
       File.Delete("d:\CSV\TestOut.csv") 
      End If 

      Dim sw As New StreamWriter("d:\CSV\TestOut.csv") 
      Dim s As String = String.Empty 

      While reader.Peek() >= 0 
       Dim line As String = reader.ReadLine() 
       Dim values As String() = line.Split(";"c) 
       listA.Add(values(0)) 
       s = s + line + Chr(10) 
      End While 
      reader.Close() 
      sw.Write(s) 
      sw.Close() 
     Catch ex As Exception 
      MessageBox.Show(ex.Message) 
     End Try 

    End Sub 
İlgili konular