Pregunta

Trabajé con el formato de archivo de forma ESRI ahora y tengo algún problema con cambiar / editar el tamaño del campo de la base de datos. Creé un campo con 200 longitud / tamaño y ahora quiero que solo tenga 80 longitud / tamaño (espacio y otras mejoras).

Sin embargo, ya no puedo editar el tamaño del campo :( ¿alguien puede indicar cómo cambiar el tamaño del campo?

Por cierto, he probado utilidades como DBF Explorer que puede editar el tamaño del campo, pero cuando cambio el tamaño del campo en el campo char / text, los datos en el campo flotante / numérico se eliminan :(
DBF Explorer

PD: la base de datos ESRI usa la extensión .dbf, que creo que era el formato DBASE III plus o DBASE IV

¿Fue útil?

Solución

Puede editar el encabezado del archivo para cambiarlo con cualquier editor hexadecimal.

byte 10-11: representa la longitud de un registro (el byte menos significativo primero)

comenzando en el byte 48 una estructura repetida (48 bytes cada uno) que describe el campo. El byte 33 de esta estructura representa la longitud.

Otros consejos

NO edita el encabezado, los datos se alinean con desplazamiento fijo y cambia el tamaño del campo a algo que no coincida con el físico longitud del registro WILL corromperá su tabla.

Necesitará algo que pueda leer / escribir DBF para hacer esto de manera efectiva. Una instalación antigua de DBase funcionará, aunque sería mejor con Visual FoxPro (el comando FoxPro sería MODI STRU , que es la abreviatura de " MODIFICAR ESTRUCTURA ") . También miraría otras herramientas para empujar / extraer los datos a otros formatos. Si tiene acceso a Access (perdón por el juego de palabras), siempre puede importar los datos a Access como una tabla de Access, reestructurar la tabla y luego exportarla, aunque a partir de Access 2007, el soporte nativo de DBF / FoxPro ha sido más menos eliminado, que requiere ODBC. Otras medidas (que requieren más tiempo) serían:

  • mire usando Excel (siempre que los datos tienen muy pocas filas, las versiones anteriores solo pueden manejar 32k o 64k filas en total)
  • use Python para leer / escribir datos (haga un buscar en SO para obtener esta información)
  • una variante de lo anterior en Perl / Ruby / {inserte el lenguaje de script favorito con una biblioteca DBF}
  • use ODBC + {inserte la base de datos cheapo aquí} + {inserte la herramienta de administración de cheapo para base de datos de cheapo que puede modificar una tabla aquí} + exportar desde {base de datos cheapo}

Para editar el tamaño del campo en un archivo .dbf, uso OpenOffice. En OpenOfficeSpreadsheet, el nombre de campo .dbf se presentaría como "FEILDNAME, C, 200". Para cambiar el tamaño de 200 - > 80 tendría que cambiar el nombre del campo a: " FEILDNAME, C, 80 " y luego guarde el archivo .dbf.

Su DBASE III (más o menos).

El archivo dbf contiene los metadatos (como el tamaño y tipo de campo) y los datos. Todos se almacenan de tamaño fijo.

No recuerdo si hay herramientas para cambiar el tamaño del campo, pero puede crear una nueva tabla y copiar los datos. Pero el formato no es tan difícil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top