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 | ''' ----------------------------------------------------------------------------- |
09 | Public 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 |
33 | End Function |