>LOCAL lnX, lcString, lnLength, lnBase, lnSecs >lcString = REPLICATE("1234567890",100000) > > Declare Integer HeapAlloc in Win32Api Integer, Integer, Integer > Declare Integer HeapFree in Win32APi Integer, Integer, Integer > Declare Long GetProcessHeap in Win32API > >lnLength = LEN(lcString) >TRANSFORM(lnLength,"9,999,999") > >lnSecs = SECONDS() > >lnBase = HeapAlloc( GetProcessHeap(), 0, m.lnLength ) >Sys(2600, m.lnBase, m.lnLength, m.lcString) >FOR lnX = 1 TO lnLength > lcVal = Sys(2600,m.lnBase-1+m.lnX,1) >ENDFOR >HeapFree( GetProcessHeap(), 0, m.lnBase ) > >? "SYS(2600): " + TRANSFORM(SECONDS() - lnSecs ) >>On my machine, this runs in 0.33 seconds vs 37 seconds for the SUBSTR() approach.