Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Fixing table with CMRepair
Message
From
16/11/2023 11:23:06
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Germany
 
 
To
16/11/2023 11:01:20
Dragan Nedeljkovich (Online)
Now officially retired
Zrenjanin, Serbia
General information
Forum:
Visual FoxPro
Category:
Third party products
Miscellaneous
Thread ID:
01687246
Message ID:
01687278
Views:
28
>>>- with bells and whistles: figure out the untouched memo blocks in the memo file, list them for the operator, possibly he can identify missing data.
>>
>>>But I thought there was no backlinks in the FPT to point back to the DBF record who owns it? In cases where the FPT pointers in the DBF are corrupted (or the pointers are fine but the content of the FTP has been corrupted) how can you parse the FPT and "know" what DBF row that chunk belongs to? Apologies if my understanding of the internal structure of DBFs v. FPTs is incorrect.
>>
>>The memo comes in blocks of a size you find at byte 06-07 (SET BLOCKSIZE at creation time.) The blocks start at byte 512. The length of the memo is at offset 04, so you can calc how long a block is - and where the next one should start. A block starts with "00 00 00 00" or "00 00 00 01". If you do not see this at a block start, this is no block start, you are on a consecutive block.
>>
>>The memo field inside the DBF points to the start of the block. (for all I know, it's a virtual number, the position is number*blocksize+512)
>
>And that number is, believe it or not, n(10,0), i.e. written in plain ASCII. The field type is M, but the actual content is c(10) with just blanks and digits. Then you go to that block, read its length and fget() that.

Thanks. :)
Words are given to man to enable him to conceal his true feelings.
Charles Maurice de Talleyrand-Périgord

Weeks of programming can save you hours of planning.

Off

There is no place like [::1]
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform