テキストファイルの最後の数行を取得する |
テキストファイルの最後の数行を取得する ゆう(U)さん投稿分 (075) | |
|
Option Explicit 'SampleNo=075 WindowsXP VB6.0(SP5) 2002.05.16 '====================================================== 'テキストファイルの最後の数行を取得する fReadLastText '====================================================== ' result = fReadLastText(FileName, [BuffLines], [MaxLength]) ' 引数 FileName :テキストファイルのパス ' BuffLines:取出す行数 (デフォルト:1) ' MaxLength:最大レコード長(Byte)(デフォルト:100) ' 戻値 result :Variant型内部配列(文字列:1次元) '------------------------------------------------------ 'エラー処理はしていません(既存のファイルで読込み可のみ) '------------------------------------------------------ Private Function fReadLastText(ByRef FileName As String, _ Optional ByVal BuffLines _ As Long = 1&, _ Optional ByVal MaxLength _ As Long = 100&) As Variant Dim strTemp() As String Dim strReturn() As String Dim intFileNumber As Integer Dim strFileName As String Dim i As Long, j As Long, k As Long strFileName = FileName ReDim strTemp(0& To BuffLines - 1&) ReDim strReturn(0& To BuffLines - 1&) intFileNumber = FreeFile Open strFileName For Input As #intFileNumber i = LOF(intFileNumber) - ((BuffLines + 1&) * MaxLength) If i > 0& Then Seek #intFileNumber, i End If Do Until EOF(intFileNumber) j = j + 1& Line Input #intFileNumber, strTemp(j Mod BuffLines) Loop Close #intFileNumber For i = 1& To BuffLines strReturn(k) = strTemp((i + j) Mod BuffLines) k = k + 1 Next i fReadLastText = strReturn End Function Private Sub Command1_Click() Dim varTemp As Variant Dim i As Long Dim gn As Long Text1.Text = "" gn = CLng(Text2.Text) varTemp = fReadLastText("Test.txt", gn, 100&) For i = LBound(varTemp) To UBound(varTemp) Text1.Text = Text1.Text & varTemp(i) & vbCrLf Next i End Sub Private Sub Text2_GotFocus() Text2.SelStart = 0 Text2.SelLength = Len(Text2.Text) End Sub |
2002/05/16