テキストファイルの指定行を読込
                                                         玄関へお回り下さい。
テキストファイルの指定行を瞬時に読込む        (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