lcText=FILETOSTR(TRANSFORM(lcfile)) _mline=0 ltStart=SECONDS() SET MEMOWIDTH TO 16383 nLen=len(lcText) do while _mline<nLen c=MLINE(lcText,1,_mline) ENDDO ltend=SECONDS() ?ltend-ltstart ltStart=SECONDS() SET MEMOWIDTH TO 16383 n=ALINES(aa, lcText) FOR i=1 TO n c=aa[i] ENDFOR ltend=SECONDS() ?ltend-ltstartI've eliminated the writing into cursor for this benchmark, just to see the net effect of retrieving a line either way. I've created a textfile of about 1.5 megabytes, and the result is about 32 seconds for mline() vs 0.04 seconds for alines(). That's about 800:1 - we have a clear winner here. It was 1000:1 when I had a "do while _mline < len(lcText)" - because then it had to retrieve the length of the lctext for each row.