2017-11-26 18 views
-1

ファイル私はちょうど私がDataGridViewの中で読まれるCSVファイルを保存しようとしている 書き込みCSVはVB.NET

VB.NET

にコードを保存したCSVファイルでトラブルを抱えています。私はちょうど "読書"コードを作った、それは完全に動作します!ファイルの保存に何が問題なのですか?

Public Class Builder 

Sub Create_Records() 
    Dim i As Integer 
    For i = 0 To Manager.Grid.Rows.Count - 1 
     Manager.Grid.Rows.Add("ciao;", "comestai") 
    Next 
End Sub 

Sub Write() 
    If (Not System.IO.Directory.Exists("C:\MyPCBuilder")) Then 
     System.IO.Directory.CreateDirectory("C:\MyPCBuilder") 
    End If 

    Dim Write As New System.IO.StreamWriter("C:\MyPCBuilder\builds.csv") 
    For i = 0 To Manager.Grid.Rows.Count - 1 
     Text = "" 
     For j = 0 To 1 
      If Text = Text & Manager.Grid.Rows(i).Cells(j).Value & ";" Then 
      Else 
       Text = Text & Manager.Grid.Rows(i).Cells(j).Value 
      End If 
     Next 
     Write.WriteLine(Text) 
    Next 
    Write.Close() 
End Sub 

Private Sub btn_Confirm_Click(sender As Object, e As EventArgs) Handles btn_Confirm.Click 
    Create_Records() 
    Write() 
End Sub 

エンドクラス

+0

あなたはこれをデバッグしていませんか? [ask]を読んで[tour] – Plutonix

答えて

1

あなたの内側のループでのif文は間違っています。 Thenの部分が空であり、条件が奇妙です。あなたが唯一の2列を持っているので、あなたが、代わりにインデックスのためのテスト(外側のループが示されていない)(場合には、あなたが複数の列または列の可変数を持っている)、この内側のループを維持したい場合は、単に

For i = 0 To Manager.Grid.Rows.Count - 1 
    Text = Manager.Grid.Rows(i).Cells(0).Value & ";" & Manager.Grid.Rows(i).Cells(1).Value 
    Write.WriteLine(Text) 
Next 

を書きます

Text = "" 
For j = 0 To 1 
    If j > 0 Then 
     Text = Text & ";" 
    End If 
    Text = Text & Manager.Grid.Rows(i).Cells(j).Value 
Next 
関連する問題