|
2021/12/14(Tue) 10:16:32 編集(投稿者)
■No98663 (ゆい さん) に返信 > 下のようなCSVファイルの行数を、簡単に得られるようでしたら教えてください。
レコードの区切りとしての改行はあるけれど、 データ内改行は存在しない状態ですね。
固定長ならともかく、可変長テキストということになると、 仕組み的には全読みしかないので、方法としては File.ReadLines メソッドか File.ReadAllLines メソッドを使うのが簡単かな…。
'Imports System.IO 'Imports System.Text
Dim allLines As String() = File.ReadAllLines("D:\file1.csv", Encoding.GetEncoding("Shift_JIS")) Label1.Text = $"{allLines.Length}行"
なおこの方法だと file0.csv『』 という空ファイルは 0 行として扱われます。
そして file1.csv『2021/12/01,1254,214,2514,215,2541{改行}』 file2.csv『2021/12/01,1254,214,2514,215,2541』 は 1 行とみなされ、 file3.csv『2021/12/01,1254,214,2514,215,2541{改行}2021/12/02,124,2121,251,265,3255』 file4.csv『2021/12/01,1254,214,2514,215,2541{改行}2021/12/02,124,2121,251,265,3255{改行}』 は 2 行ということになります。
この方法は「レコード間改行」と「行末改行」を区別できないため、 両者を区別したい場合は、別途考慮が必要です。
|