Les fichiers indexés-séquentiels permettent de faire correspondre des contenus arbitraires (chaines de caractères, nombres, etc.) à des clés d'accès. Les fichiers indexés-séquentiels sont stockés sur disque afin de conserver leur contenu d'une exécution à l'autre de ADAPT. Les fiches de ces fichiers peuvent être lues soit en ordre croissant/décroissant de clé d'accès (accès séquentiel), soit directement en spécifiant une clé d'accès (accès direct).
/nom :: constructeur permet de définir un fichier indexé-séquentiel. Le constructeur doit produire les paramètres d'ouverture de l'indexé-séquentiel:
F=nom de fichier pour spécifier le nom du fichier-disque qui contient le fichier indexé-séquentiel.
A=mode d'accès Lorsque ce paramètre est spécifié, il est possible de modifier le contenu du fichier. Le mode d'accès peut être I pour immédiat (mode le plus sécure en cas de panne de courant) ou R pour retardé (ou rapide).
C=N doit être spécifié pour créer un nouveau fichier indexé-séquentiel.
I=nombre Taille des index. A spécifier à la création seulement. Doit être un multiple de 512. 512 suffit pour des petits fichiers, 2048 pour des fichiers énormes. 8192 est le maximum recommandable pour des disques optiques.
D=nombre Taille des blocs de données. A spécifier à la création seulement. Doit être un multiple de 512. Généralement la même taille que les blocs d'index. DOIT ETRE PLUS GRAND QUE LA PLUS GRANDE FICHE A STOCKER.
K=L Indique que la clé d'accès est un nombre encodé (donc dont le premier octet est le moins significatif sur le IBM/PC). A spécifier à la création seulement.
U=S Déclare que toutes les écritures se feront en ordre CROISSANT de clé d'accès et qu'il faut minimiser l'espace d'«expansion» (inutilisé) entre les fiches.
L=nombre Nombre de tampons pour l'accès au fichier. Par défaut L=2 (minimum)
Chacun de ces paramètres doit être séparé par une seule espace.
Par exemple:
/DICTIONNAIRE :: "F=C:\ASSOC\TRADUC.ASS A=I C=N I=512 D=1024"
permet de créer un fichier indexé-séquentiel qui résidera sur le fichier C:\ASSOC\TRADUC.ASS. Ce fichier pourra contenir entre une centaine et quelques milliers de fiches, dépendamment de la taille des clés d'accès et de celle des contenus associés.
/DICTIONNAIRE :: "F=C:\ASSOC\TRADUC.ASS A=I"
suffira par la suite pour modifier ce fichier. Et:
/DICTIONNAIRE :: "F=C:\ASSOC\TRADUC.ASS"
suffit lorsque vous désirez seulement consulter le contenu du fichier.
L'assignation permet de déposer un contenu dans un fichier indexé-séquentiel:
nom-du-fichier ( constructeur de la clé ) := constructeur du contenu
Pour obtenir le contenu ainsi associé à une clé d'accès, vous pouvez inscrire dans n'importe quel constructeur:
nom-du-fichier ( constructeur de la clé )
Pour se positionner avant la première clé ou après la dernière clé ( le résultat est le même ):
@*< nom-du-fichier ou
@>* nom-du-fichier
Pour obtenir la dernière clé accédée pour un fichier indexé-séquentiel, vous pouvez inscrire dans un constructeur:
@ nom-du-fichier
Pour obtenir la clé suivante, ET S'Y POSITIONNER :
@> nom-du-fichier
Dans un patron, ceci échoue si on est à la fin du fichier.
Pour obtenir la clé précédente, ET S'Y POSITIONNER :
@< nom-du-fichier
Dans un patron, ceci échoue si on est au début du fichier.
Pour détruire une fiche ayant une clé donnée:
@- nom-du-fichier ( constructeur de la clé )
Dans un patron, @ nom-du-fichier ( constructeurs ) permet de vérifier l'existence d'une fiche, et échoue si elle n'existe pas. @@ nom-du-fichier ( constructeurs ) permet de trouver la première fiche dont la clé est plus grande ou égale à la clé spécifiée. Échoue seulement à la fin du fichier.