Contactos

Un ejemplo de trabajo con DBF en c. ¿Cómo abrir DBF? Extracción de entradas en el archivo DBF

DBF es un formato generalizado de almacenamiento de datos que apareció en los años 80 del siglo pasado. Por primera vez, el formato se usó en la familia DBASE DBMS. Debido a la popularidad y la distribución generalizada de DBASE, se crearon muchos de los gustos de DBase. productos de softwareque recibió el nombre colectivo xBase. A pesar de la edad significativa del formato, todavía se usa ampliamente. Este artículo analiza las formas de trabajar con DBF de "1c: Empresa".

En "1C: Enterprise" para trabajar con archivos de formato DBF (versión DBASE III), se usa un objeto de programa especial - XBase. Trabajar con este objeto generalmente no causa dificultades.

¡Atención!

Cuando trabaje con archivos DBF, debe recordar que el nombre del archivo debe satisfacer el límite 8.3.

¡Atención!

El objeto XBee está disponible tanto en el lado del cliente como en el lado del servidor. La interacción cliente-servidor debe ser pensada al resolver cada tarea específica.

Leyendo archivo dbf

Leyendo datos de archivo dbf Realizado por varias etapas consecutivas:

  1. Creando un objeto xbase;
  2. Abriendo un archivo;
  3. Enumeración secuencial de todas las filas de archivos y valores de campo de lectura;
  4. Cerrando el archivo.
Dbf \u003d Nueva XBase; DBF. OpenFile ("D: \\ myfile.dbf"); // Etapa 2. Abrir un archivo Mientras la verdad es ciclo // Etapa 3. Cambio de anillos de archivo Notificar (DBF. Nombre); Si no es DBF. Lo que sigue // posicionando en la siguiente publicación Interrumpir; Terminó; Endcycle; DBF. Closel (); // Etapa 4. Ficha Cierre

Puede usar un algoritmo múltiple para la parte de las filas de archivos:

Hasta que el DBF esté. Informe de ciclo Inkonce () (DBF. Nombre); DBF. próximo(); Endcycle;

Descarga al archivo DBF

Etapas de descarga al archivo DBF:

  1. Creando un objeto xbase;
  2. Especificando la codificación (si no se especifica, se utilizará la codificación ANSI);
  3. Campo Descripción;
  4. Creando un archivo;
  5. Ciclo con la adición y llenado de filas;
  6. Cerrando el archivo.

Considere este proceso en el ejemplo:

Dbf \u003d Nueva XBase; // Etapa 1. Creación de un objeto XBase DBF. Codificación \u003d codingxbase. OEM; // Etapa 2. Firmando la codificación DBF. Campos. Agregar ("código", "S", 9); // Etapa 3. Descripción del nombre y tipo de campo DBF. Campos. Añadir ("NOMBRE", "S", 40); DBF. Crear archivo ("D: \\ myfile.dbf"); // Etapa 4. Creación de un archivo Muestreo \u003d referencias. Nomenclatura. Escoger(); Mientras muestra. Siguiente () DBF Ciclo. Agregar (); // añadiendo cadena DBF. Código \u003d muestreo. El código; // llenando el valor del campo DBF. Nombre \u003d muestra. Nombre; DBF. Anote (); // récord de la línea del endccycle; DBF. Ciselar(); // Etapa 6. Cierre de archivos

Al especificar una codificación, utiliza el tipo de codingxbase, que puede tomar dos valores:

  • ANSI. - Formato de Windows;
  • OEM. - Formato DOS.

Agregar un nuevo campo al describir la estructura tiene una sintaxis

Agregar (< Имя>, < Тип>, < Длина>, < Точность>)

Los siguientes tipos están disponibles:

  • "N" - el número;
  • "S" - línea;
  • "D" - Fecha;
  • "L" - Boolewo;
  • "F" - Similar a "n" - un número.

La longitud del campo es obligatoria para los tipos de campos "N", "F" y "S".

Trabajando con índices

Junto con el archivo DBF, se puede utilizar un archivo de índice, lo que puede contener información sobre uno o más índice. La presencia de índices hace posible usar la búsqueda, y no solo la enumeración consistente de todas las filas de archivos.

Mientras creas archivo de índice. Deberías establecer:

  • Lista de índices;
  • Ruta Guarde el archivo de índice (en el paso 4 de la descarga).

Un ejemplo de la creación de un archivo de índice:

Dbf . Índices. Agregar ("indiode", "código"); DBF. Crea un archivo("D: \\ myfile.dbf", "D: \\ index.cdx");

El procedimiento para agregar un nuevo índice tiene una sintaxis:

Agregar (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

Para usar índices al leer desde el archivo DBF, sigue:

  • Especifique la ruta al archivo de índice (en el paso 2 de las descargas);
  • Establecer el índice actual.

Un ejemplo de abrir un archivo DBF usando un archivo de índice:

Dbf . OpenFile ("D: \\ myfile.dbf", "D: \\ index.cdx"); DBF. Tenderindex \u003d dbf. Índices. Indiode.;

¡Atención!

Cuando abra el archivo DBF, el posicionamiento se produce en la primera entrada en el archivo. La primera entrada en el archivo no coincide con la primera entrada en el índice. En este sentido, al usar índices antes de evitar constantemente las filas, es necesario firmarlo en la primera línea del índice. Esto se puede hacer por el primer () método (), por ejemplo:

DBF. Primero ();

Para buscar, se pueden usar una de las dos funciones:

  • Encontrar (< Ключ>, < Режим >) ;
  • Punto encontrado (< Режим >) .

Como resultado del trabajo de ambas funciones, se devuelve el valor con el tipo de BUVENE (un registro con condiciones especificadas o no). En el caso de una búsqueda exitosa, el puntero actual se establece en la línea encontrada. Como modo de búsqueda, se pueden usar uno de los valores:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

Considere la búsqueda en el archivo DBF en los ejemplos:

Dbf \u003d Nueva XBase; DBF. OpenFile ("D: \\ myfile.dbf", "D: \\ index.cdx"); // Cuando abre el archivo DBF, el archivo de índice se especifica adicionalmente. DBF. Tenderindex \u003d dbf. Índices. Indiode; // configurando el índice actual // Buscar método Buscar: Si dbf. Buscar ("000000003", "\u003d") Luego, para informar (+ DBF. Nombre); De lo contrario, para informar ("no encontrado"); Terminó; // Encuentra el método de búsqueda: DBF. Clave. Código \u003d "000000002"; Si dbf. Buscar punto ("\u003d") entonces para informar ( "Encontrado. Nombre del artículo:" + DBF. Nombre); De lo contrario, para informar ("no encontrado"); Terminó; DBF. Ciselar();

Extracción de entradas en el archivo DBF

Eliminar grabación está hecho por el método de eliminación ():

Dbf . Borrar();

Pero cuando se usa este método, la grabación no se elimina del archivo de forma permanente, se le asigna una marca de referencia. Al cruzar las filas marcadas para eliminar los registros se omiten. Si necesita obtener todo el archivo, incluido el marcado para eliminar la grabación, debe asignar el valor de la verdad a la propiedad. Desplegado Objeto xbase. Puede encontrar una entrada de eliminación o no usar la función de grabación (). Para eliminar la eliminación, se utiliza el método Restaurar ().

Dbf . Se muestra \u003d verdad; Hasta que el DBF esté. Vkonce () ciclo si dbf. Añadido tolene () luego DBF. Restaurar(); Terminó; DBF. próximo(); Endcycle;

Para eliminar directamente los registros marcados, se utiliza para comprimir () Método:

Dbf . Estrujar();

Si necesita eliminar todas las entradas en el archivo directamente, puede usar el método Borrar archivo ():

Dbf . Archivo vacio();

Cargando de DBF con ADO

La tecnología ADO se puede utilizar para trabajar con archivos DBF. Los controladores ADO son parte del sistema operativo Windows e instálelos, además.

Considere un código de muestra para leer desde el archivo DBF de acuerdo con la tecnología ADO:

Alharaca \u003d Nueva conexión ("Adodb.Connection"); // creando un objeto com Alharaca. Abierto ( "Proveedor \u003d Microsoft.Jet.oledb.4.0; | fuente de datos \u003d" "" D: \\ ""; | Propiedades extendidas \u003d DBASE III ") Db \u003d ADO. Ejecutar ("Seleccionar * de MyFile"); // Solicitud para obtener todas las entradas del archivo myfile.dbf Mientras que la base de datos Eof \u003d 0 ciclo // Ciclo por registros Archivo DBF Informe (base de datos. Campos ("nombre"). Valor); // un ejemplo de una apelación al valor de campo Base de datos Movenenext (); // ir a la siguiente publicación Endcycle; Alharaca. Cerca ();

El ejemplo de la línea de conexión "Proveedor \u003d Microsoft.Jet.oledb.4.0; Fuente de datos \u003d" D: \\ "; Propiedades extendidas \u003d DBASE III. En esta línea:

  • El proveedor es un conductor utilizado;
  • Fuente de datos: la ruta donde se encuentra el archivo DBF. El camino está indicado con una precisión del catálogo. El nombre del archivo se utiliza como nombre de tabla en consultas;
  • Propiedades extendidas: en el caso de acceder a los archivos DBF es un parámetro obligatorio. Puede especificar el formato de archivo

¡Atención!

Al leer el método especificado, la codificación predeterminada es OEM. Para cambiar la codificación en ANSI, debe asignar el parámetro HKEY_LOCAL_MACHINE \\ Software \\ WOW6432Node \\ MicroSopt \\ Jet \\ DatacoDepage en el Registro de Windows.

Las tablas de formato DBF se conocen desde el distante 1980. Desde entonces, el formato DBASE ha evolucionado, desarrollado, DBASE II, DBASE III y DBASE IV, se han desarrollado muchos programas populares que trabajan con bases de datos se desarrollan hasta la fecha, en la que se utilizan las tablas de formato DBF para este día. El formato de la tabla DBF es bastante antiguo, pero continúa usándose para crear proyectos grandes y ambiciosos y ambiciosos, las tablas de DBF se utilizan con fines educativos, para las citas y el estudio de conocimientos básicos y la presentación de las bases de datos de la Organización. DBFNavigator es un programa gratuito para ver y editar las tablas de formato DBF, una utilidad simple y conveniente.

Con el programa DBFNavigator, puede abrir y ver las tablas de DBF, editar tablas: cambiar, agregar y eliminar registros. Uso de DBFNavigator, puede cambiar la estructura de la tabla, agregar, cambiar y eliminar los campos de la tabla, comprimir las tablas de DBF para limpiarlas de registros remotos (recolección de basura), cambie la codificación de la tabla de Windows-\u003e DOS y viceversa. En el programa, puede ordenar la entrada de la tabla, copiar los registros y los campos individuales, mostrar las filas de la tabla de impresión, realizar la búsqueda y aplicar para ver los registros de tabla de filtros, cambie las opciones para abrir archivos DBF.

Capturas de pantalla del programa DBFNavigator.



DBF Viewer 2000 ® - Aplicación para ver y editar DBF Todos los tipos: Clipper, DBASE, FOXPRO, VISUAL FOXPRO, VISUAL DBASE.

El programa realiza varias acciones: solicitudes, eliminando duplicados o exportaciones a varios formatos, más rápido de lo que espera.

El editor de DBF crea dinámicamente los formularios visuales basados \u200b\u200ben la estructura de archivos DBF para editar y consultas. El programa también le permite ver y editar los campos de la nota de los siguientes formatos: DBASE III, DBASE IV, FOXPRO, VFP y DBASE NIVEL 7.

El programa de plenitud admite el uso de una línea de comandos para lo siguiente: Importar, exportar, eliminar registros duplicados o reemplazar datos en archivos DBF. Funciona independientemente de varios DBMS, ¡todo lo que necesita para ver y editar un archivo DBF para instalar la solicitud!

¿Por qué DBF Viewer 2000
¿Único?

Interfaz simple e intuitiva.

La interfaz de aplicación es bastante simple y conveniente, le permite ahorrar mucho tiempo con el trabajo cotidiano.

Modificación conveniente de la estructura de archivos DBF en DBF Viewer 2000

Puede agregar, eliminar, cambiar el nombre, cambiar el orden de los campos y optimizar la estructura de los archivos DBF.

Importar datos de varios formatos con DBF Viewer 2000

DBF Viewer 2000 le permite importar datos de los siguientes formatos: TXT, CSV, Excel (XLS, XLSX), DBF y Paradox. Los datos de importación se pueden realizar con vista previa o desde una línea de comandos.

DBF Viewer 2000 ofrece oportunidades de exportación extendidas

La aplicación le permite exportar archivos DBF en Excel (XLS, XLSX), CSV, TXT, SQL, SDF, XML, HTML, PRG, MS SQL, MySQL, Oracle, Scripts PostgreSQL.

DBF Viewer 2000 ayuda a eliminar duplicados

La eliminación de registros duplicados es fácil como 1-2-3.

Trabaja en todas las plataformas

DBF Viewer 2000 se inicia en todas las versiones de Windows de 95 a XP, Vista, 7/8/10 y ediciones del servidor (32/64 bits)

El problema más común, debido a qué usuarios no pueden abrir este archivo, es un programa asignado incorrectamente. Para solucionarlo en Windows, debe hacer clic con el botón derecho en el archivo, en el menú contextual, traiga el mouse a un elemento "Abrir usando" y seleccione el menú desplegable Seleccionar elemento de programa. Como resultado, verá una lista de programas instalados en su computadora, y puede elegir una adecuada. También recomendamos verificar la casilla frente al artículo "Use esta aplicación para todos los archivos DBF".

Otro problema con el que nuestros usuarios también ocurren con bastante frecuencia: el archivo DBF está dañado. Tal situación puede surgir en casos de casos. Por ejemplo: el archivo se descargó no completamente como resultado del error del servidor, el archivo fue dañado inicialmente, etc. Para eliminar este problema, use una de las recomendaciones:

  • Intente encontrar el archivo deseado en otra fuente en Internet. Es posible que tenga la suerte de encontrar una versión más adecuada. Ejemplo de búsqueda de Google: "File FileType: DBF". Simplemente reemplace la palabra "archivo" al nombre que necesita;
  • Pídale que le envíe nuevamente el archivo de origen, puede haber sido dañado durante la transmisión;

El formato de DBF (archivo base de datos) se introdujo en el uso de Ashton-Tate en 1980, en la primera DBMS de la familia DBASE DATCER SISTEMS SYSTEMS - dBASE II.

El formato de datos abiertos y la popularidad del sistema original llevó a la aparición de muchos análogos DBMS diferentes, como FoxPro, DBFast, XBase ++ y otros. Al mismo tiempo, los desarrolladores realizaron varios cambios en el formato básico asociado con la funcionalidad (agregando nuevos tipos de datos, cambiando la estructura del encabezado o la estructura del campo de la tabla, etc.).

La ausencia de cualquier estandarización rígida y cambios similares han afectado la falta de garantías de que el programa que se está desarrollando puede realizar correctamente la operación de lectura / escritura con cualquier archivo DBF. Sin embargo, la compatibilidad básica se conserva entre diferentes formatos DBF.

El archivo DBF consta de 2 particiones: el título y directamente la tabla de datos en sí. El título contiene información general sobre el archivo DBF: la estructura de archivos, el número de entradas utilizadas por la versión DBF, la cantidad de memoria ocupada por título y tabla, etc. La composición de la estructura del encabezado es diferente en varias versiones del formato.

El final del archivo está marcado con un EOF (final de archivo).

Para acelerar el trabajo con archivos DBF, es posible usar archivos de índice en los que se enumeran los valores de los campos de teclas (o un conjunto de campos de teclas si el archivo múltiple) e identificadores de los registros correspondientes.

En 1C, el trabajo con los archivos DBF se puede realizar de varias maneras:

  • Objeto xbase;
  • Interfaz de programación

Objeto xbase

El objeto XBase proporciona la capacidad de trabajar con las bases de datos de formato DBF utilizando el 1C incorporado: Enterprise.

Este objeto proporciona acceso a la recopilación de campos y índices de tabla de DBF, le permite realizar cualquier acción en los datos (creando nuevas y lee tablas existentes, agregue, ajuste y elimine registros).

Para cada archivo DBF con el que desea crear un objeto XBase separado.

Interfaz de programación ADO.

ADO (ActiveX Data Objects) es una interfaz de programación para el acceso a datos que le permite obtener datos de varias fuentes.

Objetos ADO básicos que permiten realizar manipulaciones con un archivo DBF:

Con la lista completa de objetos y sus propiedades se pueden encontrar en MSDN.

Conexión: un objeto que proporciona directamente acceso a un archivo DBF

Abierto (connectionString) Abre la sesión de origen de datos. El parámetro se transmite una línea de conexión del "Proveedor \u003d Microsoft.Jet.oledb.4.0; Fuente de datos \u003d;
Propiedades extendidas \u003d DBASE IV; ID de usuario \u003d; contraseña \u003d; "
El parámetro DataSource especifica la carpeta en la que se encuentran los archivos DBF.
Cerca () Cierra la conexión a la fuente de datos.
Proveedor. Contiene el nombre del proveedor usado. Al realizar el método abierto, el proveedor se llena automáticamente de la cadena de conexión.
Conectividad Contiene la cadena de conexión. Al ejecutar el método Abrir, el parámetro de función de interrupciones se llena automáticamente
Connetimeout. Contiene el número de expectativas cuando está conectado. Predeterminado - 15
Commandtimeut. Contiene la cantidad de segundos de expectativa al ejecutar el comando. Predeterminado - 30
Ejecutar (ComandanteExt) Realiza una consulta, llama al procedimiento almacenado o cualquier otro comando disponible en el lado del proveedor.

DISTRIBUCIÓN DE RECIBLOS - Objeto que representa un conjunto de registros (cadenas) de la tabla de datos

Activeconnection. Especifica el objeto del tipo de conexión. Como valor, puede especificar tanto un objeto de conexión de tipo y una cadena de texto de una vista similar, así como la propiedad ConnectionString con el objeto de conexión
ActiveCommand. Especifica el objeto de tipo de tipo como resultado de la ejecución de la cual se recibió este conjunto de registros
Filtrar. Contiene el filtro de datos que debe aplicarse a este conjunto de registros.
Cerca. Cierra el objeto de registros
Pedido. Realiza una actualización de objetos al volver a solicitar la tabla. Similar a la llamada en serie Cerrar () Abrir ()
Bof / eof. Signos de mesa de inicio / fin. Si bof \u003d verdad, entonces el puntero debe estar antes del primer registro del objeto de registros. Si EOF \u003d verdad, entonces el puntero está después del último registro del objeto de registros
Moverse. Ejercita el cambio de la entrada actual hacia adelante al número especificado de registros (o de vuelta, si es negativo)
Moverfirst. Ejercita el cambio del puntero al primer registro.
Movelast. Ejercicios del puntero de cambio a la última entrada.
Movenext. Ejercita un cambio de puntero a la siguiente entrada.
Moverprevia. Ejercita el cambio de puntero a la entrada anterior.
Campos. Contiene una colección de campos. A través del diseño ("nombre de punto"). El valor puede obtener el valor especificado en la línea actual.
Encontrar. Buscar una fila en criterios especificados.
Getstring. Le permite obtener una representación de cadena de la línea actual

Comando: un objeto que proporciona ejecución de comandos o consultas SQL



¿Te gustó el artículo? Compártelo