TTabulens RUPT Windows Open app

FPT and DBT files: where the long text of a DBF really lives

If a file with the same name as your table and the extension .fpt or .dbt sits next to it, that is not clutter or a backup. It is the second half of the table, and without it part of the data does not exist.

Updated 2026-09-30 · format DBF

Why a separate file

Every record in a DBF has the same length — that is what makes the format fast. But long text does not fit that scheme: you cannot declare a 5,000-byte “notes” field when 99% of records have no note.

The solution is simple: the table stores not the text but a block number in a separate file. The field takes 4 or 10 bytes, and text of any length lives next to the table.

Three memo formats

FileWritten byHow it is laid out
.DBT (dBase III)dBase III+, early Clipper512-byte blocks; the text ends with the pair 0x1A 0x1A
.DBT (dBase IV)dBase IV and 5each block starts with the signature FF FF 08 00, then a length
.FPTFoxPro 2.x, Visual FoxProblock size in the header; every block has a type and a length
.SMTClipper SIXan eight-byte block header

The reference stored in the table differs as well: Visual FoxPro writes the block number as four binary bytes, while FoxPro 2.x and dBase use ten digit characters. The two cannot be mixed up — the same field would read as either text or garbage.

Why the text is blank

Three common causes, in order of frequency:

How to tell whether a table has memo at all

There are two signs. The first is the field type in the table structure: M (memo), G (general), P (picture) or W (blob). The second is a flag in the file header.

The version byte hints at memo too, but misleads: Visual FoxPro writes version 0x30 for tables with and without memo. Go by the actual memo fields, not the version — otherwise you will keep hunting for a .fpt that was never there.

What to do with it

If you need the text elsewhere, export the table to a format where long text is an ordinary value: XLSX, CSV or JSON. When exporting back to DBF, the memo is created anew, and the .dbf and .fpt files have to be kept together — which is why the pair is packed into one archive.

FAQ

Can I open an .fpt file on its own?

There is little point: an .fpt holds chunks of text with no link to records. The link is stored in the table itself.

Why is the memo file larger than the table?

That is normal. Blocks are allocated in multiples of the block size, and deleted text physically stays in the file until the memo is rebuilt.

Do indexes (.cdx) have anything to do with memo files?

No. A .cdx is an index for fast lookup and sorting; memo files carry text. A table can have either, both or neither.

Your file never leaves your computer. Parsing happens in the browser, in a background thread. The page's security policy forbids sending data to third-party addresses — you can check this in the developer tools. After the first visit the app keeps working offline.
Open the app Download for Windows

Free for personal use. Your file is not uploaded to a server. Windows version — 3.5 MB, no installation: details. Organizations: license.