6

csv ファイルとして保存されている整数の大きな配列を、.NET と呼ばれる VB.Net DataTable にインポートしようとしていますBeamMap。.csv ファイルは整数のみで構成され、区切り文字は,であり、データは引用符で囲まれておらず (例: 1,3,-2,44,1)、行末文字は改行とキャリッジ リターンです。私がしたいのは、適切な行と列 (各行に同じ数の列があります) を持つ DataTable セルに各整数を取得し、後でコードで参照できるようにすることだけです。コードに絶対に必要なもの (タイトル、キャプション、見出しなど) 以外は必要なく、かなり効率的である必要があります (csv 配列は約 ~1000 x ~1000 です)。

ありがとう!

4

4 に答える 4

16

プロバイダーを使用OleDbして CSV を読み取り、DataTable.

 Dim folder = "c:\location\of\csv\files\"
 Dim CnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & folder & ";Extended Properties=""text;HDR=No;FMT=Delimited"";"
 Dim dt As New DataTable
 Using Adp As New OleDbDataAdapter("select * from [nos.csv]", CnStr)
       Adp.Fill(dt)
 End Using
于 2012-06-20T13:11:09.400 に答える
4

これは、厳密な形式を必要とする単純なアプローチです(あなたが述べたように):

Dim lines = IO.File.ReadAllLines(path)
Dim tbl = New DataTable
Dim colCount = lines.First.Split(","c).Length
For i As Int32 = 1 To colCount
    tbl.Columns.Add(New DataColumn("Column_" & i, GetType(Int32)))
Next
For Each line In lines
    Dim objFields = From field In line.Split(","c)
                 Select CType(Int32.Parse(field), Object)
    Dim newRow = tbl.Rows.Add()
    newRow.ItemArray = objFields.ToArray()
Next
于 2012-06-20T12:01:00.270 に答える
1

マップされたドライブからファイルを取得し、取得したデータをデータセットに入れます。

Dim folder = "Z:\"
Dim CnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & folder & ";Extended Properties=""text;HDR=No;FMT=Delimited"";"

Dim dssample As New DataSet
Using Adp As New OleDbDataAdapter("select * from [samplecsv.csv]", CnStr)
    Adp.Fill(dssample)
End Using

If dssample.Tables.Count > 0 Then
    'some code here
End If
于 2015-02-07T07:08:29.800 に答える
0

Also, don't forget to include the

Imports System.Data.OleDb

And if you wish to link to a DataGridView (after read):

Dim bs As New BindingSource
bs.DataSource = dt
DataGridView1.DataSource = bs
于 2012-10-31T17:43:47.003 に答える