IF Empty(Mline(lcMemo,1)) > lcMemo = SUBSTR( lcMemo, _MLINE + 2) >ENDIFOtherwise
llGoodFirstLine = .F. >lcLine1 = Mline(lcMemo,1) >FOR i=1 TO LEN(lcLine1) > IF Substr(lcLine1,i,1) > SPACE(1) > llGoodFirstLine = .T. > EXIT > ENDIF >ENDFOR >IF NOT llGoodFirstLine > lcMemo = SUBSTR( lcMemo, _MLINE + 2) >ENDIFor
lcBadChars = Chr(0)+Chr(1)+Chr(2)+Chr(3)+Chr(4)+Chr(5)+Chr(6)+Chr(7)+Chr(8)+; > Chr(9)+Chr(10)+Chr(11)+Chr(12)+Chr(13)+Chr(14)+Chr(15)+Chr(16)+; > Chr(17)+Chr(18)+Chr(19)+Chr(20)+Chr(21)+Chr(22)+Chr(23)+Chr(24)+; > Chr(25)+Chr(26)+Chr(27)+Chr(28)+Chr(29)+Chr(30)+Chr(31)+Chr(32) >IF Empty( Chrtran(Mline(lcMemo,1), lcBadChars, "")) > lcMemo = SUBSTR( lcMemo, _MLINE + 2) >ENDIF >Thanks, those are all good approaches. I'll make good use of them where applicabe.