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

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

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

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

    ''' -----------------------------------------------------------------------------
    ''' 
    ''' テキストファイルレコード件数取得
    ''' 
    ''' 入力ファイルフルパス名
    ''' ファイルのエンコーディング
    ''' レコード件数(-1:エラー発生)
    ''' -----------------------------------------------------------------------------
    Public Function GetTextFileCount(ByVal astrSrcFileName As String,
                                     ByVal enc As System.Text.Encoding) As Integer
        '戻り値初期化
        GetTextFileCount = -1
        Try
            Dim intCnt As Integer = 0

            '入力ファイルをオープンする
            Using sr As New System.IO.StreamReader(astrSrcFileName, enc)
                'ファイルからレコードが存在するまで読込
                While (sr.Peek() >= 0)
                    'ファイルから1行読込
                    Dim strRead As String = sr.ReadLine()
                    '件数++
                    intCnt += 1
                End While
            End Using

            '件数を返す
            Return intCnt

        Catch ex As Exception
            'エラー処理が必要な場合は、ここに記述する
        End Try
    End Function