Does a file contain a string?


Function FileContains (FileName As String, SearchText As String) As Long
Dim FileNumber As Integer
Dim FileLength As Long
Dim Chunk As String
Dim ChunkStart As Long
Dim FoundAt as Long
Const MaxChunk = 20000

On Error GoTo FileContainsError

FileNumber = FreeFile

Open FileName For Binary Access Read Shared As FileNumber
FileLength = LOF(FileNumber)
ChunkStart = 0

Do Until ChunkStart = FileLength
    If FileLength - ChunkStart > MaxChunk Then
        Chunk = Input$(MaxChunk, FileNumber)
        ChunkStart = ChunkStart + MaxChunk - Len(SearchText)
    Else
        Chunk = Input$(FileLength - ChunkStart, FileNumber)
        ChunkStart = FileLength
    End If
         FoundAt = InStr(Chunk, SearchText)
    If FoundAt > 0 Then
        FileContains = FoundAt
        Exit Do
    End If
Loop

Close FileNumber

Exit Function

FileContainsError:
    Select Case Err
        Case Else
            MsgBox Error$ & " on file " & FileName
    End Select
    Exit Function

End Function



Mail to Daniel Wiman <daniel@wimania.com>
Online since June 1996, updated 980315
<- The VB home
<- Daniels homepage