2014-09-23 12 views
5

Sto lavorando su VS 2012, Vb.Net utilizzando .Net 4.0.Come creare un file csv dalla variabile stringa usando streamwriter in Vb.Net?

Utilizzando Streamwriter o FileStream, sto cercando di creare un csv Temp che si troverà nella cartella c: \ windows \ temp. I valori per il file .csv verranno popolati da una variabile stringa.

valori campione nella variabile stringa sarà simile come ..

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

Come scrivere un file .csv dalla variabile stringa?

Dim reader As StreamReader = New System.IO.StreamReader(File.OpenRead("D:\CSV\Test.csv")) 
Dim listA As New List(Of String)() 
Dim listB As New List(Of String)() 
Dim s As String = "" 
While Not reader.EndOfStream 
    Dim line As String = reader.ReadLine() 
    Dim values As String() = line.Split(";"c) 
    listA.Add(values(0)) 
    s = s + line + Chr(10) 
End While 
+0

Si sta fornendo codice senza menzionare il problema. Inoltre, stai dividendo per ';' ma i tuoi dati di esempio sono separati da una virgola. In generale, usa un parser csv disponibile come ['TextFieldParser'] (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser (v = vs.110) .aspx) -class invece di reinventare la ruota. –

+0

Sarei interessato a come utilizzare TextFieldParser per creare un csv. –

+0

@TimSchmelter, ho completato il lavoro sul codice. Pubblicherò la risposta entro domani. – goofyui

risposta

3

Utilizzo di Streamwriter (sw è la dichiarazione di variabile). Sono in grado di scrivere file .csv.

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 
Problemi correlati