どこにでもTipsはあるが、メモ
Imports System.IO.StreamReader を忘れずに。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 'Shift-JISでpathのファイルを全量取り込んでClose Dim sr As StreamReader = New StreamReader(path, System.Text.Encoding.GetEncoding( "Shift-JIS" )) Dim buf As String = sr.ReadToEnd() sr.Close() '改行コードで分断 Dim buf_line() As String = csv_buf.Split(vbCrLf) Dim buf_item() As String Dim cnt As Integer = buf_line.Length '空ファイルである場合終了 If line_cnt <= 0 Then Return False End If 'csvを1行ずつ処理 Dim i As Integer = 0 For i = 1 To cnt - 1 Step 1 buf_line(i) = buf_line(i).Replace(vbCr, "" ).Replace(vbLf, "" ).Trim() If buf_line(i) <> "" Then 'Length>0の方がいいかも buf_item = buf_line(i).Split( "," ) End If Next i |
CRCLでぶちってもLFが残るみたいなので、カンマでSplitする前に改行コードを全部Replaceさせた。
普通はCRだけででぶちって、LFは改行として使うのだろう。(セル内改行として必要な場合がある・・・)
全量一括で取り込んだ方が、速度としては早い。
(メモリは喰うので、大量の場合は1行ごとに取り込んだ方がよいのだろう)