TTabulens ENPT Windows Abrir la app

Estructura de DBF: una referencia del formato

El formato tiene más de cuarenta años, la especificación se ha dividido en dialectos y no hay un único estándar. Esta página reúne lo que hace falta para leer un archivo uno mismo o para entender por qué el programa de otro no puede.

Actualizado 2026-09-30 · formato DBF

El encabezado: los primeros 32 bytes

DesplazamientoTamañoContenido
01versión del formato: 0x03 dBase III, 0x30 Visual FoxPro, 0x83 dBase III con memo
1–33fecha de la última actualización: año (dos dígitos), mes, día
4–74número de registros
8–92longitud del encabezado: ahí empiezan los datos
10–112longitud de un registro
281indicadores de la tabla: 0x01 tiene .cdx, 0x02 tiene memo, 0x04 pertenece a un .dbc
291controlador de idioma (página de códigos)

Una consecuencia útil: el número de registros se puede comprobar con aritmética. (tamaño del archivo − longitud del encabezado) ÷ longitud del registro debe ser igual al contador. Si no lo es, el archivo se truncó o el contador miente.

Descriptores de campo

Justo después del encabezado vienen las definiciones de campo, de 32 bytes cada una, seguidas de un byte 0x0D que marca el final de la lista.

Cada descriptor contiene el nombre (11 bytes, rellenado con ceros), el tipo (1 byte), el desplazamiento del campo (4 bytes), la longitud (1 byte), el número de decimales (1 byte) y los indicadores (1 byte). Por eso los nombres de campo se limitan a diez caracteres.

dBase Level 7 es un caso especial: el nombre ocupa 32 bytes y todo el descriptor, 48. Las dos disposiciones se distinguen por su estructura: compruebe cuál hace que las longitudes de los campos sumen la longitud del registro del encabezado.

Tipos de campo

TipoSignificadoCómo se guarda
Ccadena de caracterestexto, rellenado con espacios por la derecha
N, Fnúmerocomo texto, alineado a la derecha
Dfechaocho caracteres AAAAMMDD
Llógicoun carácter: T, F, Y, N o un espacio
Mmemoun número de bloque en un archivo externo
Ientero4 bytes, little-endian
Tfecha y hora8 bytes: un día juliano y milisegundos
Ymonedaun entero de 8 bytes, dividido entre 10.000
Bdoble en Visual FoxPro, memo en dBasedepende de la versión: fuente frecuente de errores

Los números guardados como texto no son un arcaísmo sino una virtud: N(12,2) contiene exactamente lo que se ve, sin redondeo binario. Por eso los totales de un DBF no se «desvían» como en los formatos de coma flotante.

Registros y marca de eliminación

Los registros van uno tras otro, todos de la misma longitud. La dirección de cualquier registro es una multiplicación, así que el acceso a un registro es instantáneo.

El primer byte de cada registro es un byte de servicio: un espacio significa que el registro está activo y un asterisco, que está marcado como eliminado. Más sobre esto en su propio artículo.

Visual FoxPro añade un campo de sistema, _NullFlags: una máscara de bits en la que cada bit indica que el campo correspondiente contiene NULL. Sin interpretarlo, los valores vacíos parecen ceros y cadenas vacías, y la diferencia importa.

Preguntas frecuentes

¿Por qué el mismo tipo se lee distinto en herramientas distintas?

Por los dialectos. El ejemplo clásico es el tipo B: en Visual FoxPro es un número de doble precisión y en dBase una referencia a un memo binario.

¿Cómo averiguo la versión del formato?

Por el primer byte del archivo. Pero la versión solo nombra el dialecto: si hay memo se juzga mejor por los tipos de campo reales.

¿Para qué sirve el archivo .cdx que hay junto a la tabla?

Es un índice para búsquedas y ordenaciones rápidas. Sus datos duplican los de la tabla, así que tras editar la tabla sin el índice hay que reconstruirlo.

Su archivo no sale de su ordenador. La lectura se hace en el navegador, en un hilo en segundo plano. La política de seguridad de la página prohíbe enviar datos a direcciones de terceros: puede comprobarlo en las herramientas para desarrolladores. Tras la primera visita, la aplicación funciona también sin conexión.
Abrir la aplicación Descargar para Windows

Gratis para usar. Su archivo no se sube a ningún servidor. Versión para Windows — 4.6 MB, sin instalación: detalles. Pro — 29 USD una sola vez: precio.

Más sobre el tema