0
中的某些列,因此我有一個csv文件,其中包含額外的逗號。我知道在特定專欄之後我不會需要任何東西。所以基本上,我不需要第12欄後面的任何信息。我對csv看起來如何看起來沒有發言權,所以我不能在那裏改變它。我想知道是否有辦法讀取前12列並忽略csv文件的其餘部分。只讀取csv
這就是代碼現在的樣子。
感謝您的幫助
Private Sub GetData(ByVal Path As String, ByRef DG As DataGridView, Optional ByVal NoHeader As Boolean = False)
Dim Fields(100) As String
Dim Start As Integer = 1
If NoHeader Then Start = 0
If Not File.Exists(Path) Then
Return
End If
Dim Lines() As String = File.ReadAllLines(Path)
Lines(0) = Lines(0).Replace(Chr(34), "")
Fields = Lines(0).Split(",")
If NoHeader Then
For I = 1 To Fields.Count - 1
Fields(I) = Str(I)
Next
End If
dt = New DataTable()
For Each Header As String In Fields
dt.Columns.Add(New DataColumn(Header.Trim()))
Dim desiredSize As Integer = 11
While dt.Columns.Count > desiredSize
dt.Columns.RemoveAt(desiredSize)
End While
Next
For I = Start To Lines.Count - 1
Lines(I) = Lines(I).Replace(Chr(34), "")
Fields = Lines(I).Split(",")
Dim dr As DataRow = dt.Rows.Add()
For j = 0 To Fields.Count - 1
dr(j) = Fields(j).Trim()
Next
Next
DG.DataSource = dt
End Sub
使用標準的ReadLines方法,您無法在行的某個點停止讀取。如果他們有這個選項,你可以嘗試搜索一些專門用於解析文件的外部庫(一個想到的是[FileHelpers](http://filehelpers.sourceforge.net/),但它可能是矯枉過正的,所以,除了當你創建列時你已經'需要調試'工作方法的創造性/刪除模式,除了創造/刪除模式 – Steve 2014-10-17 12:19:20
而不是重新發明輪子,你可能想看看[TextFieldParser Class](http:// msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser(v=vs.110).aspx) – 2014-10-17 13:23:15