clear lcBlockSize = "0" testblocksize() lcBlockSize = "5" testblocksize() function testblocksize() lcMode = "exclusive" testit() lcMode = "shared" testit() return function testit() set blocksize to &lcBlockSize create table memo1 ( m1 m ) append blank use in memo1 ? "Mode:", lcMode ? "Blocksize:", lcBlockSize ? "Make the memo larger" for i = 1 to 3 adir( laFile, "memo1.fpt" ) ? "Before:", laFile[2] use memo1 &lcMode replace m1 with m1 + " " use adir( laFile, "memo1.fpt" ) ?? " After:", laFile[2] endfor ? "Make the memo smaller" for i = 1 to 3 adir( laFile, "memo1.fpt" ) ? "Before:", laFile[2] use memo1 &lcMode replace m1 with left( m1, len( m1 ) - 1 ) use adir( laFile, "memo1.fpt" ) ?? " After:", laFile[2] endforIn shared mode the size goes up with every operation, except the last smaller operation because at that point the memo is empty, so the memo pointer in the dbf goes to null the fpt size is not affected. In exclusive mode the file size only increases when the currently allocated block is exceeded.