Qu'est-ce que le format de fichier NDX ?
Un fichier .ndx est un index B-tree à champ unique associé à une base de données dBASE (.dbf). Introduit avec dBASE III en 1984, il permet un accès trié aux enregistrements sans scanner toute la table - par analogie avec l'index d'un livre imprimé.
Le format stocke un B-tree de nœuds fixes de 512 octets. Un en-tête de 16 octets enregistre le numéro du bloc racine, le nombre total de blocs, la longueur de la clé, le type de clé et un indicateur de valeur unique. Chaque nœud feuille contient des valeurs de clé de tri ainsi que des pointeurs de numéro d'enregistrement renvoyant au fichier .dbf.
Un fichier .ndx indexe exactement une expression de clé - un nom de champ ou une formule simple, jusqu'à 220 caractères, avec la clé évaluée plafonnée à 100 octets. Cette contrainte d'un seul index par fichier est la principale limitation du .ndx par rapport au format ultérieur .MDX (dBASE IV, 1988), qui stocke jusqu'à 47 balises d'index dans un seul fichier et se met à jour automatiquement.
Crucialement, les index .ndx ne sont pas maintenus automatiquement lorsque des enregistrements sont ajoutés, supprimés ou modifiés dans le .dbf. Les utilisateurs doivent lancer une commande explicite REINDEX ou SET INDEX TO dans dBASE pour les reconstruire - un index périmé produit des résultats de requête incorrects. Les outils modernes tels que dBASE Plus et DBF Viewer Plus acceptent toujours les fichiers .ndx pour la compatibilité héritée. FoxPro et Visual FoxPro préfèrent quant à eux le format d'index composé .cdx.
Sécurité et sûreté
RISQUE : LOWLes fichiers NDX ne contiennent que des données d'index (clés + pointeurs d'enregistrement) ; aucun code exécutable. Sûr à ouvrir avec n'importe quel visionneur compatible xBase. La corruption d'un NDX n'affecte pas les données du DBF - l'index peut être reconstruit.
Détails du format
en bref- Fichier d'index FoxBase/FoxPro - FoxBase et les premières versions de FoxPro utilisaient également des fichiers d'index unique .ndx (même format que dBASE III NDX) ; FoxPro 2+ est passé à l'index composé .cdx.
- Fichier d'index (nommage générique) - Certaines applications personnalisées utilisent .ndx de manière générique comme fichier d'index en texte brut ou propriétaire sans rapport avec dBASE.
Programmes qui ouvrent les fichiers NDX
Détails techniques
spécifications approfondies| Type de format | Index B-tree binaire à champ unique pour bases de données dBASE |
| Encodage | Binaire, little-endian |
| Taille de nœud B-tree | Fixe à 512 octets par nœud (nœuds racine, branche et feuille) |
| En-tête | 16 octets - numéro de bloc racine, nombre total de blocs, longueur de clé, type de clé (caractère/numérique), indicateur d'unicité, octet de version |
| Limite d'expression de clé | Jusqu'à 220 caractères dans l'expression ; valeur de clé de tri évaluée plafonnée à 100 octets |
| Capacité d'indexation | Une expression de clé par fichier (contrainte d'index unique - un fichier `.ndx` par champ ou expression indexé) |
| Base de données liée | Fichier compagnon `.dbf` ; les nœuds feuilles stockent des pointeurs de numéro d'enregistrement vers les lignes de données du DBF |
| Comportement de mise à jour automatique | L'index n'est PAS maintenu automatiquement ; nécessite un `REINDEX` ou `SET INDEX TO` explicite après modifications du DBF |
| Origine | dBASE III par Ashton-Tate ; compatible avec dBASE IV, V et les implémentations xBase modernes |
| Remplacé par | `.mdx` (dBASE IV - jusqu'à 47 balises d'index auto-mises à jour par fichier) ; `.cdx` (FoxPro / Visual FoxPro) |
| OS associé | DOS (original), Windows (compatibilité héritée dans les outils modernes) |
| Support moderne | Toujours accepté par dBASE Plus et DBF Viewer Plus pour la compatibilité héritée |
| Types de clés | Chaînes de caractères et valeurs numériques ; les champs de date sont convertis en représentation de caractères pour l'indexation |
| Risque d'index périmé | Un `.ndx` non reconstruit après des modifications du DBF renvoie des résultats de requête incorrects sans avertissement |
| Publié | 1984 (dBASE III) |
| Dernière version | dBASE III-compatible NDX (unchanged since dBASE III era) |
| Standard ouvert | Oui · libre de droits |
| Spécification | pic.hallikainen.org |
Conversions NDX
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers NDX.