テキストファイルの指定行を読込 |
テキストファイルの指定行を瞬時に読込む (259) | |
使用する前に、[プロジェクト]→[参照設定]で Microsoft Scripting Runtime
の参照にチェックを入 れておいて下さい。 そして Form に CommandButton1個とTextBoxを2個とLabelを1個貼り付けておいて下さい。 |
|
Option Explicit 'SampleNo=259 WindowsXP VB6.0(SP5) 2003.02.24 Private myLine As Long Private MaxLine As Long Private TxtFile As String Private Sub Form_Load() Dim Fso As New FileSystemObject 'テキストファイルは別途ご用意下さい。 TxtFile = App.Path & "\test1.txt" '総行数を取得 MaxLine = Fso.OpenTextFile(TxtFile, ForAppending).Line Label1.Caption = "1行〜 " & MaxLine & " 行の範囲で指定して下さい" End Sub Private Sub Command1_Click() 'ファイルの指定行を読込 Dim I As Long Dim Fso As New FileSystemObject Dim FsoTS As TextStream Text1.Text = "" myLine = CLng(Text2.Text) Set FsoTS = Fso.OpenTextFile(TxtFile) '指定行まで読み飛ばし(For〜Nextでの読み飛ばしの方がDo〜Loopより早い) For I = 1 To myLine - 1 FsoTS.SkipLine Next I 'ファイルの最後以降は取得しない(最後にvbCrLfがあると1行増えてエラーが発生 'する場合があるのでvbCrLfだけの行は取得しない) If FsoTS.AtEndOfStream = False Then '指定行のデータを取得 Text1.Text = FsoTS.ReadLine & vbCrLf End If FsoTS.Close Set FsoTS = Nothing End Sub Private Sub Text2_LostFocus() '指定行を取得 Dim N As Long N = CLng(Text2.Text) If N < 1 Or N > MaxLine Then Beep Text2.SetFocus End If End Sub |
|
95,000 行目でも 0.3秒で読込表示できます。 最後の数行だけ読込むとか、最新の100行だけ読込保存するとか、応用すれば色々使い道があ るかと思います。 |
2003/03/05