<HTML><FONT FACE=arial,helvetica><FONT  SIZE=2 FAMILY="SANSSERIF" FACE="Arial" LANG="0">I'm pretty sure the problem with speed here is from reading in the entire file.<BR>
Unless of course you have enough free RAM- but that's hard to imagine when the files are 300MB+.<BR>
<BR>
How about this, which you can adjust to read any given number of lines at a time.<BR>
Try it with 10, 1000, 10000, etc and see what gives you the best performance!<BR>
Hasn't been tested but hopefully it'll run with a tweak or less.<BR>
<BR>
#!/usr/local/bin/mc<BR>
on startup<BR>
&nbsp; ## initialize variables: try adjusting numLines<BR>
&nbsp; put "/gig/tmp/log/xaa" into the_file<BR>
&nbsp; put 1000 into numLines<BR>
&nbsp; put 0 into counter<BR>
<BR>
&nbsp; open file the_file<BR>
<BR>
&nbsp; repeat until (isEOF = TRUE)<BR>
&nbsp;&nbsp;&nbsp;&nbsp; ## read the specified number of lines, check if we are at the end of the file<BR>
&nbsp;&nbsp;&nbsp;&nbsp; read from file the_file for numLines lines<BR>
&nbsp;&nbsp;&nbsp;&nbsp; put it into thisChunk<BR>
&nbsp;&nbsp;&nbsp;&nbsp; put (the result = "eof") into isEOF<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp; ## count the number of matches in this chunk<BR>
&nbsp;&nbsp;&nbsp;&nbsp; put offset("mystic_mouse", thisChunk) into theOffset<BR>
&nbsp;&nbsp;&nbsp;&nbsp; repeat until (theOffset = 0)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add 1 to counter<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; put offset("mystic_mouse", thisChunk, theOffset) into tempOffset<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (tempOffset &gt; 0) then add tempOffset to theOffset<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else put 0 into theOffset<BR>
&nbsp;&nbsp;&nbsp;&nbsp; end repeat<BR>
<BR>
&nbsp; end repeat<BR>
<BR>
&nbsp; close file the_file<BR>
<BR>
&nbsp; put counter<BR>
end startup<BR>
<BR>
<BR>
HTH,<BR>
Brian</FONT></HTML>