CREATE TABLE LONGSTR (txtpart1 c(225), txtpart2 c(225), txtpart3 c(225), txtpart4 c(225), txtpart5 c(124)) INDEX ON txtpart1 TAG txtpart1 INDEX ON txtpart2 TAG txtpart2 INDEX ON txtpart3 TAG txtpart3 INDEX ON txtpart4 TAG txtpart4 INDEX ON txtpart4 TAG txtpart5 * lcLong is your string, the loop is to create test data FOR y=32 TO 100 && create test data lcLong="" FOR x=1 TO 1024 lcLong = lcLong + CHR(y+(x%64)) ENDFOR * the next line is vital! INSERT INTO LONGSTR (txtpart1,txtpart2,txtpart3,txtpart4,txtpart5) values; (LEFT(lcLong,225),; SUBSTR(lcLong,226,225),; SUBSTR(lcLong,451,225),; SUBSTR(lcLong,671,225),; SUBSTR(lcLong,901)) ENDFOR * now to test the search lcLong="" && your search string, here we create a dummy string to search for FOR x=1 TO 1024 lcLong = lcLong + CHR(50+(x%64)) ENDFOR * the next line IS Rushmore optimized! LOCATE FOR txtpart1=LEFT(lcLong,225); AND txtpart2=SUBSTR(lcLong,226,225); AND txtpart3=SUBSTR(lcLong,451,225); AND txtpart4=SUBSTR(lcLong,671,225); AND txtpart5=SUBSTR(lcLong,901)>I have to store a string that is 1024 bytes (1K) in size. I would love it store them in a table and index them, but the only way I can think to do this is store the string in chunks of 254 bytes. Then I would have to put them back together in order to get the orginal string. Plus I have a problem creating that long of index.