Pair the real memo sidecar
A memo field can reference a block in a separate DBT or FPT. Use the companion from the same table revision, not another file with convenient text. Matching base filenames help prevent an accidental mix-up, but filenames alone cannot prove the two files belong together. Preserve the source pair and verify a known note against the original application if possible.
This release reads dBASE III DBT text in 512-byte blocks with a two-byte 1A1A terminator. It also reads FoxPro FPT text blocks using the block size and length stored in their headers. Pictures, objects, binary memos and dBASE IV DBT variants are reported unsupported. A pointer outside the file or a truncated block remains unresolved.
Select existing deletion-marked records
DBF records have a deletion flag. Some applications leave a marked record’s bytes in place until a later packing operation removes them. The record selection can include active records, deletion-marked records or both. Every exported row keeps its original one-based record number and deletion state so the selection can be audited.
Including a deleted flag does not restore a database transaction or make the record valid in the original application. It merely exports stored bytes that remain within the file’s declared record count. Packed, overwritten or missing records cannot be recreated. Unexpected trailing data is refused rather than scanned for speculative records and presented as recovered content.
Choose the right migration output
Use XLSX when exact character identifiers and numeric text need to remain text cells. CSV has no field-type metadata, so another application can still strip zeros or round long values during import. Import those columns explicitly as text, or use JSON for a machine-readable representation with null values, schema and cell-level issues.
The CSV protects formula-like text with an apostrophe and reports how many cells changed. Original decoded strings remain unchanged in XLSX and JSON, and the original DBF is never rewritten. A legitimate negative numeric field is not treated as a text formula. Review the Issues and Read me worksheets, keep the source pair, and validate the destination schema before using the migrated data operationally.