VB.NET Tips - テキストファイルレコード件数取得

指定されたテキストファイルパスとエンコーディングで StreamReader でオープンし、 ファイルを順次 StreamReader.Peek() 関数で読み込み、その回数でレコード件数を取得します。 StreamReader.Peek() 関数で読み込まれたデータは捨てています。

この関数自体は、指定ファイルの存在をチェックしていませんので、必要であればファイルオープン前に確認し、 ファイルが存在しない戻り値を返す必要があります。

テキストファイルレコード件数取得

01''' -----------------------------------------------------------------------------
02''' <summary>
03''' テキストファイルレコード件数取得
04''' </summary>
05''' <param name="astrSrcFileName">入力ファイルフルパス名
06''' <param name="enc">ファイルのエンコーディング
07''' <returns>レコード件数(-1:エラー発生)</returns>
08''' -----------------------------------------------------------------------------
09Public Function GetTextFileCount(ByVal astrSrcFileName As String,
10                                 ByVal enc As System.Text.Encoding) As Integer
11    '戻り値初期化
12    GetTextFileCount = -1
13    Try
14        Dim intCnt As Integer = 0
15 
16        '入力ファイルをオープンする
17        Using sr As New System.IO.StreamReader(astrSrcFileName, enc)
18            'ファイルからレコードが存在するまで読込
19            While (sr.Peek() >= 0)
20                'ファイルから1行読込
21                Dim strRead As String = sr.ReadLine()
22                '件数++
23                intCnt += 1
24            End While
25        End Using
26 
27        '件数を返す
28        Return intCnt
29 
30    Catch ex As Exception
31        'エラー処理が必要な場合は、ここに記述する
32    End Try
33End Function

総アクセス数