>what if there are not any records in teh file. that's my point. if i run it w/o any records, somehow it's reading that one phantom record.
And so it should - that's what the phantom record is for, so that you always have something in the fields. And you guessed it right, it was always called phantom record. It's record number is one greater than recc() (unless you have buffered records with negative recno()s); sometimes it's handy to check between(recno(), 1, recc()) to see if you're on a real record or on the phantom.
This record doesn't exist, and all of its fields are blank. Cetin's code (locate, check for bof() and eof()) is correct.