>>>I am parsing Medical HL7 format records. I'm using fgets() to read them as a flat file. Some of the record formats have interpretations of the data that exceeds the 8192 maximum length of the fgets. When I get the data if the length is less than 8192 then it is obvious the length is what it is. If the length of the data is 8192 how can I tell if the fgets completed because of a CR or there is more data for that record?
>>
>>You cannot tell a difference from FGETS() but you can use FSEEK(nFileHandle,0) to track a file pointer in a file. The difference between previous an current value should allow you to determine both cases.
>
>
>I'm not understanding. I can use len() to find if I got 8192. If that is the len how can I determine of the next character is part of the record just read or the start of the next record??
Forget 8192.
If VFP uses the CR, then FSEEK(fhandle, 0.1) will be 1 or more characters forward LEN (fgets ()).
Then
fPosition=FSEEK(fhandle,0,1)
cFgets=FGETS(fhandle,8192)
if FSEEK(fhandle,0,1) =m.fPosition+LEN(m.cFgets)
else
endi