VB 关于读取文件字节的效率有关问题

VB 关于读取文件字节的效率问题
有代码如下 
dim a() as byte :dim b() as byte 
open "C:\a.txt" for binary as #1 /90K的文件 这里代码运行,大概的时间是 3 - 4 秒
open "C:\b.txt" for binary as #2 /60K 的文件 
redim a (1 to filelen("C:\a.txt") )
redim b (1 to filelen("C:\b.txt") )
dim strA as string ,strB as string ,i as long 
'/--- 这里开始如何加大读取的效率 
for i = 1 to ubound(a) 
  strA = strA + format(a(i),"000" '避免 '4' & '40' = '440' '44' & '0' = '440' 的情况  
next i
for i = 1 to ubound(b) 
  strB = strB + format(a(i),"000" 
next i
' 在实际应用,文件大概有 1M - 3M之间,这个速度让我很头痛 
'/--- 这里结束 
最终的目的是为了 instr(strA,strB) 
如何提高读取的效率 
而且 a.txt 和 b.txt 又不知道可不可以用读取字符串的方法来读取,据我观察应该是不可以的 
假设 a.txt 中的文字为 
"..中国人" 他的16进制用UltraEdit 看为 12 13 AD FE FA D1 2A E4 (真正的情况 这八个字符不一定是 12 13 AD FE FA D1 2A E4 只是举例) 
且 b.txt 中的文字为
".中国人" 对应的16进制为 18 AD FE FA D1 2A E4 ( 后面 AD FE FA D1 2A E4 是相同的 ) 
这里的"." 用字符串读出来看起来是相同的,但是代表这个"." 的16进制可能是 12 13 或者 18 
 

------解决方案--------------------
VB code
dim Buff1() as byte,buff2() as byte,IsOK as boolean
dim I as long,J as long
Const lST as long=44     '比较的开始地址
dim FileName1 as string,FileName2 as string

open filename1 for binary as #1
open filename2 for binart as #2
     redim buff1(lof(1)-1)
     redim buff2(lof(2)-1)

     get #1,,buff1()
     get #2,,buff2()
close

for i= To ubound(buff1)
    if buff1(i)=buff2(lst) then
        isok=true
        for j=0 To ubound(buff2)-92
            if buff1(i+j)<>buff2(lst+j) then
                isok=false
                exit for
            end if
        next
        If idok=true Then
            Msgbox "匹配开始地址为:" & i
            exit for
        end if
    endif
next