Contacts

Un exemple de travail avec DBF sur c. Comment ouvrir DBF? Supprimer les entrées dans le fichier DBF

DBF est un format de stockage de données généralisé qui est apparu dans les années 80 du siècle dernier. Pour la première fois, le format a été utilisé dans la famille DBASE DBMS. En raison de la popularité et de la distribution de DBASE généralisée, de nombreux goûts de DBASE ont été créés. produits logicielsqui a reçu le nom collectif xbase. Malgré l'âge significatif du format, il est encore largement utilisé. Cet article traite des moyens de travailler avec DBF de «1c: entreprise».

Dans "1c: Enterprise" Pour travailler avec des fichiers de format DBF (version DBASE III), un objet de programme spécial est utilisé - Xbase. Travailler avec cet objet ne cause généralement pas de difficultés.

Attention!

Lorsque vous travaillez avec des fichiers DBF, vous devez vous rappeler que le nom du fichier doit satisfaire la limite 8.3.

Attention!

L'objet Xbee est disponible sur le côté client et du côté serveur. L'interaction client-serveur doit être réfléchie lors de la résolution de chaque tâche spécifique.

Lecture de fichiers DBF

Lire des données de fichier dbf Effectué pour plusieurs étapes consécutives:

  1. Créer un objet xbase;
  2. Ouvrir un fichier;
  3. Énumération séquentielle de toutes les lignes de fichier et les valeurs de champ de lecture;
  4. Fermer le fichier.
Dbf \u003d Nouveau xbase; DBF. Openfile ("D: \\ myfile.dbf"); // étage 2. Ouverture d'un fichier Alors que la vérité est du cycle // étage 3. Bagues de fichier de commutation Notifier (DBF. Nom); Sinon dbf. Suivant () alors // Positionnement sur le prochain post Interrompre; Terminé; Endyclycle; DBF. Closel (); // Stage 4. Fermeture du fichier

Vous pouvez utiliser un algorithme multiple pour la partie des rangées de fichiers:

Jusqu'à ce que le DBF soit. Rapport de cycle inkonce () (DBF. Nom); DBF. Suivant(); Endyclycle;

Déchargement sur le fichier DBF

Étapes de déchargement dans le fichier DBF:

  1. Créer un objet xbase;
  2. Spécification du codage (si non spécifié, le codage ANSI sera utilisé);
  3. Description du champ;
  4. Créer un fichier;
  5. Cycle avec des rangées d'ajout et de remplissage;
  6. Fermer le fichier.

Considérez ce processus sur l'exemple:

Dbf \u003d Nouveau xbase; // étage 1. Création d'un objet xbase DBF. Codage \u003d encodingxbase. OEM; // étage 2. Signature du codage DBF. Des champs. Ajouter ("code", "s", 9); // étage 3. Description du nom et du type de champ DBF. Des champs. Ajouter ("nom", "s", 40); DBF. Créer un fichier ("d: \\ myfile.dbf"); // étage 4. Création d'un fichier Échantillonnage \u003d références. Nomenclature. Choisir(); Pendant l'échantillon. Next () cycle DBF. Ajouter (); // Ajouter une chaîne DBF. Code \u003d échantillonnage. Le code; // remplissant la valeur du champ DBF. Nom \u003d échantillon. Nom; DBF. Écrire (); // ligne d'enregistrement de l'endyclycle; DBF. Clos(); // Étape 6. Fermeture du fichier

Lorsque vous spécifiez un codage, utilise le type d'encodingxbase, qui peut prendre deux valeurs:

  • ANSI. - Format Windows;
  • OEM. - Format DOS.

Ajout d'un nouveau champ lors de la description de la structure a une syntaxe

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

Les types suivants sont disponibles:

  • "N" - le nombre;
  • "S ligne;
  • "D" - date;
  • "L" - Boolewo;
  • "F" - Semblable à "N" - Un numéro.

La longueur de champ est obligatoire pour les types de champs "N", "F" et "S".

Travailler avec des index

Avec le fichier DBF, un fichier d'index peut être utilisé, qui peut contenir des informations sur un ou plusieurs index. La présence d'index permet d'utiliser la recherche et non seulement l'énumération constante de toutes les lignes de fichier.

En créant fichier d'index. Vous devriez définir:

  • Liste des index;
  • Chemin Enregistrez le fichier d'index (à l'étape 4 du déchargement).

Un exemple de création d'un fichier d'index:

Dbf . Indices. Ajouter ("indcode", "code"); DBF. Créer un fichier("D: \\ myfile.dbf", "d: \\ index.cdx");

La procédure d'ajout d'un nouvel index a une syntaxe:

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

Pour utiliser des index lors de la lecture du fichier DBF, suit:

  • Spécifiez le chemin d'accès au fichier d'index (à l'étape 2 des téléchargements);
  • Définissez l'index actuel.

Un exemple d'ouverture d'un fichier DBF à l'aide d'un fichier d'index:

Dbf . Openfile ("d: \\ myfile.dbf", "d: \\ index.cdx"); DBF. Tendreindex \u003d dbf. Indices. Incode.;

Attention!

Lorsque vous ouvrez le fichier DBF, le positionnement se produit sur la première entrée du fichier. La première entrée du fichier ne correspond pas à la première entrée de l'index. À cet égard, lors de l'utilisation d'index avant de contourner systématiquement les lignes, il est nécessaire d'être signé sur la première ligne de l'index. Cela peut être fait par la première méthode (), par exemple:

DBF. D'abord ();

Pour rechercher, une des deux fonctions peut être utilisée:

  • Trouver (< Ключ>, < Режим >) ;
  • Point trouvé (< Режим >) .

À la suite du travail des deux fonctions, la valeur avec le type buvene est renvoyée (un enregistrement avec conditions spécifiées ou pas). Dans le cas d'une recherche réussie, le pointeur actuel est défini à la ligne trouvée. En mode de recherche, l'une des valeurs peut être utilisée:

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

Considérez la recherche dans le fichier DBF sur les exemples:

Dbf \u003d Nouveau xbase; DBF. Openfile ("d: \\ myfile.dbf", "d: \\ index.cdx"); // Lorsque vous ouvrez le fichier DBF, le fichier d'index est également spécifié. DBF. Tendreindex \u003d dbf. Indices. Incode; // Réglage de l'index actuel // Recherche de méthode Trouver: Si DBF. Trouver ("000000003", "\u003d") puis signaler (+ dbf. Nom); Sinon, signaler ("non trouvé"); Terminé; // Trouver la méthode de recherche: DBF. Clé. Code \u003d "000000002"; Si DBF. Trouver point ("\u003d") puis signaler ( "Trouvé. Nom de l'article:" + DBF. Nom); Sinon, signaler ("non trouvé"); Terminé; DBF. Clos();

Supprimer les entrées dans le fichier DBF

Supprimer l'enregistrement est effectué par la méthode Supprimer ():

Dbf . Effacer();

Mais lors de l'utilisation de cette méthode, l'enregistrement n'est pas supprimé du fichier en permanence, il est attribué une marque de référence. Lorsque vous traversez les lignes marquées pour supprimer des enregistrements sont ignorés. Si vous devez vous déplacer dans l'ensemble du fichier, y compris l'enregistrement de la suppression, vous devez attribuer la valeur de la vérité à la propriété. Affiché Objet xbase. Vous pouvez trouver une entrée de retrait ou n'utiliser pas la fonction d'enregistrement (). Pour supprimer le retrait, la méthode de restauration () est utilisée.

Dbf . Affiché \u003d vérité; Jusqu'à ce que le DBF soit. Vkonce () cycle si DBF. Ajouté Tolene () puis DBF. Restaurer(); Terminé; DBF. Suivant(); Endyclycle;

Pour supprimer directement des enregistrements marqués, il est utilisé pour compresser la méthode:

Dbf . Presser();

Si vous devez supprimer directement toutes les entrées dans le fichier, vous pouvez utiliser la méthode Clear File ():

Dbf . Clearfile();

Chargement de DBF avec ADO

La technologie ADO peut être utilisée pour travailler avec des fichiers DBF. Les pilotes ADO font partie du système d'exploitation Windows et installent en outre.

Considérez un exemple de code pour la lecture du fichier DBF conformément à la technologie ADO:

Ado \u003d Nouvelle connexion ("Adodb.Connection"); // Création d'un objet COM Ado. Ouvert ( "Provider \u003d Microsoft.Jet.Oledb.4.0; | Source de données \u003d" "" D: \\ ""; | Propriétés étendues \u003d DBASE III "); Db \u003d ado. Exécuter ("Select * de myfile"); // Demande d'obtenir toutes les entrées du fichier myFile.dbf Pendant la base de données Eof \u003d 0 cycle // Cycle par fichier dbf fichier Rapport (base de données. Champs ("Nom"). Valeur); // un exemple d'appel à la valeur de champ Base de données MOVENENENText (); // va au prochain post Endyclycle; Ado. Fermer ();

L'exemple de la ligne de connexion "Fournisseur \u003d Microsoft.Jet.Oledb.4.0; Source de données \u003d" D: \\ "; Propriétés étendues \u003d dbase III. Dans cette ligne:

  • Le fournisseur est un pilote utilisé;
  • Source de données - Le chemin où se trouve le fichier DBF. Le chemin est indiqué avec une précision du catalogue. Le nom du fichier est utilisé comme nom de table dans les requêtes;
  • Propriétés étendues - En cas d'accès à des fichiers DBF, un paramètre obligatoire. Vous pouvez spécifier le format de fichier

Attention!

Lors de la lecture de la méthode spécifiée, le codage par défaut est OEM. Afin de modifier le codage sur ANSI, vous devez affecter le paramètre HKEY_LOCAL_MACHINE \\ logiciel \\ WOW6432NODE \\ Microsopt \\ Jet \\ DatacodePage dans le registre Windows.

Les tables de format DBF sont connues du distant 1980. Depuis lors, le format DBASE a évolué, développé, DBASE II, DBASE III et DBASE IV sont apparus, de nombreux programmes populaires travaillant avec des bases de données sont développés à ce jour, dans lequel les tables de format DBF sont utilisées à ce jour. Le format de table DBF est assez ancien, mais il continue d'être utilisé pour créer des projets importants et ambitieux, des tables DBF sont utilisées à des fins éducatives, pour dater et étudier les connaissances de base et la présentation des bases de données d'organisation. DBFnavigator est un programme GRATUIT pour la visualisation et la modification des tables de format DBF, un utilitaire simple et pratique.

Avec le programme DBFNavigator, vous pouvez ouvrir et afficher les tables DBF, Modifier les tables - Modifier, ajouter et supprimer des enregistrements. Utilisation de DBFnavigator, vous pouvez modifier la structure de la table, ajouter, modifier et supprimer les champs de la table, comprimer les tables DBF pour les nettoyer à partir des enregistrements distants (collection de déchets), modifier le codage de la table Windows-\u003e DOS et inversement. Dans le programme, vous pouvez trier l'entrée de la table, copier les enregistrements et les champs individuels, afficher les lignes de la table d'impression, effectuer la recherche et appliquer pour afficher les enregistrements de la table du filtre, modifier les options pour ouvrir des fichiers DBF.

Captures d'écran du programme DBFNavigator



DBF Viewer 2000 ® - App pour visualiser et éditer DBF tous types - Clipper, dbase, FoxPro, Visual FoxPro, Visual Dbase.

Le programme effectue diverses actions: demandes, suppression de duplicats ou exportation à divers formats - plus rapidement que prévu!

L'éditeur DBF crée de manière dynamique des formulaires visuels basés sur la structure de fichiers DBF pour l'édition et les requêtes. Le programme vous permet également de visualiser et de modifier les champs MEMO des formats suivants: DBASE III, DBASE IV, FoxPro, VFP et DBASE Niveau 7.

Le programme de plénitude prend en charge l'utilisation d'une ligne de commande pour les éléments suivants: importation, exportation, suppression d'enregistrements en double ou remplacement de données dans les fichiers DBF. Fonctionne indépendamment de divers DBMS - tout ce dont vous avez besoin pour afficher et éditer un fichier DBF pour installer l'application!

Pourquoi DBF Viewer 2000
unique?

Interface simple et intuitive

L'interface d'application est assez simple et pratique, vous permet d'économiser beaucoup de temps avec le travail quotidien.

Modification commode de la structure de fichiers DBF dans DBF Viewer 2000

Vous pouvez ajouter, supprimer, renommer, modifier l'ordre des champs et optimiser la structure des fichiers DBF.

Données d'importation de divers formats avec DBF Viewer 2000

DBF Viewer 2000 vous permet d'importer des données à partir des formats suivants: TXT, CSV, Excel (XLS, XLSX), DBF et Paradox. Les données d'importation peuvent être effectuées avec aperçu ou à partir d'une ligne de commande.

DBF Viewer 2000 offre des opportunités d'exportation prolongées

L'application vous permet d'exporter des fichiers DBF dans Excel (XLS, XLSX), CSV, TXT, SQL, SDF, XML, HTML, XML, HTML, PRG et MS SQL, MYSQL, Oracle, Scripts PostgreSQL.

DBF Viewer 2000 aide à supprimer des doublons

L'élimination des enregistrements en double est facile comme 1-2-3.

Fonctionne sur toutes les plateformes

DBF Viewer 2000 lance sur toutes les versions de Windows de 95 à XP, Vista, 7/8/10 et Editions du serveur (32/64-Bit)

Le problème le plus courant, en raison de laquelle les utilisateurs ne peuvent pas ouvrir ce fichier, est un programme mal attribué. Pour le réparer dans Windows, vous devez cliquer avec le bouton droit de la souris sur le fichier, dans le menu contextuel, apportez la souris sur l'élément "Ouvrir à l'aide" et sélectionnez le menu déroulant Sélectionner un élément de programme. En conséquence, vous verrez une liste de programmes installés sur votre ordinateur et vous pouvez choisir un approprié. Nous vous recommandons également de vérifier la case en face de l'élément "Utiliser cette application pour tous les fichiers DBF".

Un autre problème avec lequel nos utilisateurs se produisent également assez souvent - le fichier DBF est endommagé. Une telle situation peut survenir en cas de cas. Par exemple: le fichier a été téléchargé non entièrement à la suite d'une erreur de serveur, le fichier a été endommagé initialement, etc. pour éliminer ce problème, utilisez l'une des recommandations:

  • Essayez de trouver le fichier souhaité dans une autre source sur Internet. Vous avez peut-être de la chance de trouver une version plus appropriée. Exemple de recherche Google: "File Filetype: DBF". Il suffit de remplacer le mot "fichier" au nom dont vous avez besoin;
  • Vous demander de vous envoyer à nouveau le fichier source, il peut avoir été endommagé pendant la transmission;

Le format DBF (fichier de base de données) a été introduit à l'utilisation de Ashton-Tate en 1980, dans le premier SGBD de la famille Systems de gestion de la base de données DBASE - dbase II.

Format de données ouvert et la popularité du système d'origine ont entraîné l'apparition de nombreux analogues de SGBD différents, tels que FoxPro, DBFast, Xbase ++ et d'autres. Dans le même temps, les développeurs ont apporté diverses modifications au format de base associées à la fonctionnalité (ajout de nouveaux types de données, en modifiant la structure de l'en-tête ou la structure de champ de table, etc.).

L'absence de toute normalisation rigoureuse et de modifications similaires ont affecté le manque de garanties que le programme développé peut effectuer correctement l'opération de lecture / écriture avec n'importe quel fichier DBF. Cependant, la compatibilité de base est préservée entre différents formats DBF.

Le fichier DBF est composé de 2 partitions: le titre et directement la table de données elle-même. Le titre contient des informations générales sur le fichier DBF: la structure de fichier, le nombre d'entrées utilisées par la version DBF, la quantité de mémoire occupée par titre et table, etc. La composition de la structure d'en-tête est différente dans diverses versions du format.

La fin du fichier est marquée d'un EOF (fin du fichier).

Pour accélérer le travail avec des fichiers DBF, il est possible d'utiliser des fichiers d'index dans lesquels les valeurs de champ clés sont répertoriées (ou un ensemble de champs de clé si le fichier multi-index) et les identificateurs des enregistrements correspondants.

En 1C, travailler avec des fichiers DBF peut être effectué de plusieurs manières:

  • Objet xbase;
  • Interface de programmation

Objet xbase

L'objet Xbase offre la possibilité de travailler avec des bases de données de format DBF à l'aide de l'entreprise intégrée 1C: Enterprise.

Cet objet permet d'accéder à la collecte des champs et des index de table DBF, vous permet d'effectuer des actions sur les données (création de tables existantes et de la lecture de nouvelles, d'ajouter, d'ajuster et de supprimer des enregistrements).

Pour chaque fichier DBF avec lequel vous souhaitez créer un objet Xbase distinct.

Interface de programmation ADO.

ADO (ActiveX Data Objects) est une interface de programmation pour l'accès aux données qui vous permet d'obtenir des données de différentes sources.

Objets ADO de base permettant d'effectuer des manipulations avec un fichier DBF:

Avec la liste complète des objets et que leurs propriétés sont disponibles dans MSDN.

Connexion - Un objet fournissant directement accès à un fichier DBF

Ouvert (connexions) Ouvre la session de source de données. Le paramètre est transmis une ligne de connexion du "fournisseur \u003d microsoft.jet.oledb.4.0; source de données \u003d;
Propriétés étendues \u003d dBase IV; ID utilisateur \u003d; mot de passe \u003d; "
Le paramètre DataSource Spécifie le dossier dans lequel se trouvent les fichiers DBF.
Fermer () Ferme la connexion à la source de données
Fournisseur. Contient le nom du fournisseur utilisé. Lors de l'exécution de la méthode ouverte, le fournisseur est automatiquement rempli de la chaîne de connexion.
Connationstring Contient la chaîne de connexion. Lors de l'exécution de la méthode ouverte, le paramètre de fonction Connexionstring est automatiquement rempli.
Connetimeout. Contient le nombre d'attentes lorsqu'il est connecté. Par défaut - 15
CommandTimeOt. Contient le nombre d'attentes secondaires lors de l'exécution de la commande. Par défaut - 30
Exécuter (CommandText) Effectue une requête, appelle la procédure stockée ou toute autre commande disponible du côté du fournisseur.

Recordset - Objet représentant un ensemble d'enregistrements (chaînes) de la table de données

ActiveConnection. Spécifie l'objet du type de connexion. En tant que valeur, vous pouvez spécifier à la fois un objet de connexion de type et une chaîne de texte de vue similaire, ainsi que la propriété ConnectionsRing avec l'objet de connexion.
Activecommand. Spécifie l'objet de la commande de type à la suite de l'exécution de laquelle cet enregistrement a été reçu.
Filtre. Contient le filtre de données qui doit être appliqué à ce jeu d'enregistrement.
Fermer Ferme l'objet Recordset
Requête. Effectue une mise à jour d'objet en demandant à nouveau à la table. Semblable à Serial Call Fermer () Ouvrir ()
BOF / EOF. Signes de la table de début / fin. Si BOF \u003d Vérité, le pointeur doit être avant la première enregistrement de l'objet Recordset. Si eof \u003d vérité, le pointeur est après le dernier enregistrement de l'objet Recordset
Bouge toi. Exerce le décalage de l'entrée actuelle vers l'avant vers le nombre spécifié d'enregistrements (ou de retour, si elle est négative)
Movefiirt. Exerce le décalage du pointeur vers le premier enregistrement
MOVELAST. EXERCICES POINT DE POINTATEUR À LA DERNIÈRE ENTRÉE
MOVENEXT. Exerce un pointeur passe à l'entrée suivante
MovePrevious. Exerce le pointeur de pointeur à l'entrée précédente
Des champs. Contient une collection de champs. Grâce à la conception ("nom du point"). La valeur peut obtenir la valeur spécifiée dans la ligne en cours.
Trouve. Recherchez une ligne sur des critères spécifiés.
GetString Vous permet d'obtenir une représentation de chaîne de la ligne en cours

Commande - un objet fournissant une exécution de commandes ou de requêtes SQL



Avez-vous aimé l'article? Partagez-le