home *** CD-ROM | disk | FTP | other *** search
-
-
- AFile - Manuel de référence
-
-
-
-
-
- AboutThisDoc
-
- Ce manuel décrit la version 1.40 de l'utilitaire AFile. Ce programme
- est (c)1993 par Denis GOUNELLE, toute utilisation commerciale ou vente sans
- autorisation écrite est strictement interdite. Vous pouvez copier et
- diffuser ce programme aux conditions suivantes :
-
- - l'ensemble des fichiers doit être fourni
- - aucun fichier ne doit avoir été modifié
- - vous ne devez pas demander plus de 40FF pour cela
-
- Malgré de nombreux tests, je ne peux garantir que AFile ne contient
- aucune erreur. VOUS UTILISEZ CE PROGRAMME A VOS RISQUES ET PERILS. Je ne
- pourrai en aucun cas être tenu pour responsable de tout dommage, direct ou
- indirect, résultant de l'utilisation de AFile.
-
- Introduction
-
- AFile est un gestionnaire de fichiers, qui permet de définir la
- structure des enregistrements et d'accéder aux données au moyen d'une
- interface Intuition. Il dispose des fonctions classiques d'impression, de
- tri, d'import/export. Vous pouvez de plus définir des masques de saisie, et
- accèder aux données via des programmes AREXX.
-
- Vos critiques et suggestions sur ce programme seront toujours les
- bienvenues. N'hésitez pas à m'écrire, à l'adresse suivante :
-
- M. GOUNELLE Denis
- Boite 71
- 6, rue des cailloux
- 92110 CLICHY - FRANCE
-
- Vous pouvez également m'adresser un message à l'adresse Internet
- "gounelle@alphanet.ch". Notez qu'il s'agit d'une boite à lettre mise à ma
- disposition par un ami, aussi veuillez n'envoyer que de courts messages. De
- plus, n'ayant pas accès directement à mes messages, n'espérez pas avoir une
- réponse avant une dizaine de jours.
-
- Démarrage_du_programme
-
- AFile a besoin de la bibliothèque "mathieeedoubbas.library", qui est
- fournie par Commodore sur les disquettes système.
- Le programme peut être appelé du CLI ou du Workbench. Dans les deux
- cas, il est possible d'indiquer le nom du fichier à utiliser, par la méthode
- habituelle, ce qui permet d'accéder directement à l'écran de
- visualisation/modification des données.
- Sinon, l'écran principal apparait. Notez que AFile utilise
- automatiquement la police texte et la taille d'écran par défaut. Cet écran
- possède un menu qui offre les fonctions suivantes :
-
- Nouveau fichier
- Permet de créer un nouveau fichier. Une requête de fichier vous
- permettra d'indiquer le nom du fichier à créer, puis une boite
- de requête vous permettra de définir la structure du nouveau
- fichier. L'utilisation de cette boite de requête est décrite au
- paragraphe "Définition_de_structure".
-
- Modifier structure
- Permet de modifier la structure d'un fichier existant. Une
- requête de fichier vous permettra d'indiquer le nom du fichier à
- modifier, puis une boite de requête vous permettra de modifier
- la structure de ce fichier. L'utilisation de cette boite de
- requête est décrite au paragraphe "Modification_de_structure".
-
- Ouvrir fichier
- Permet d'ouvrir un fichier existant. Une requête de fichier vous
- permettra d'indiquer le nom du fichier à ouvrir, puis l'écran de
- visualisation/modification des données apparaitra. L'utilisation
- de cet écran est décrite au paragraphe "Accès_aux_données".
-
- Exécuter script
- Permet d'exécuter un script AREXX. Une requête de fichier vous
- permettra d'indiquer le nom du script à exécuter. L'interface
- AREXX de AFile est décrite au paragraphe "Interface_AREXX".
-
- Quitter
- Termine l'exécution de AFile.
-
- Définition_de_structure
-
- AFile gère des fichiers composés d'enregistrements de longueur fixe.
- Tous les enregistrements ont la même structure, composée d'un nombre
- illimité de champs définis par leur nom, leur taille et leur type.
- Les noms des champs ont une longueur maximale de 32 caractères, et
- peuvent contenir n'importe quel caractère. Il est cependant conseillé de ne
- pas utiliser d'espaces si vous prévoyez un accès depuis AREXX. Il ne peut y
- avoir deux champs de même nom dans la structure d'un fichier.
- La taille des champs est limitée en théorie à 65535 caractères, sauf
- pour les champs de type "DATE" et "BOOLEEN", qui ont une taille de 8 et 1
- octets respectivement. Pour les champs numériques, on défini également le
- nombre de chiffres après la virgule.
- Les types de champs sont les suivants :
-
- ALPHA valeur alphabétique uniquement
- NUMERIC valeur numérique avec ou sans virgule
- ALPHANUM valeur quelconque
- DATE date (jour, mois, année)
- BOOLEEN valeur booléenne (VRAI ou FAUX)
-
- La requête de définition de structure se compose d'une zone
- d'affichage où apparaissent les définitions des champs (nom/type/longueur).
- Un ascenseur permet de faire défiler l'affichage. Le champ courant est
- affiché sur un fond bleu. Pour sélectionner un champ, il suffit de cliquer
- sur sa définition : elle sera automatiquement recopiée dans les gadgets.
- Pour définir un nouveau champ, entrez ses caractéristiques dans les
- gadgets de chaine, et sélectionnez son type avec le gadget "Type". Cliquez
- ensuite sur le gadget "Ajoute" : le champ apparait alors dans la zone
- d'affichage, et devient le champ courant. Si l'ajout est refusé (trop de
- champs, il y a déjà un champ avec le même nom, plus de mémoire, etc...),
- l'écran flashe.
- Le gadget "Ajoute" ajoute le nouveau champ comme dernier champ. Le
- gadget "Insère" permet d'insérer le nouveau champ avant le champ courant. Le
- gadget "Supprime" permet de supprimer le champ courant. Le gadget "Remplace"
- permet de remplacer le champ courant par un nouveau champ. Ceci permet par
- exemple de renommer un champ, ou de changer sa taille.
- La requête de définition de structure possède également un menu, qui
- propose les fonctions suivantes :
-
- Copie structure
- Permet de copier la structure d'un fichier existant à la place
- de la structure actuellement affichée dans la requête. Une
- requête de fichier vous permettra d'indiquer le fichier dont
- vous voulez copier la structure.
-
- Abandonne
- Permet d'abandonner la définition de structure et de revenir à
- l'écran principal sans créer de fichier.
-
- Enregistre
- Permet d'enregistrer la définition de structure, et de créer
- physiquement le fichier. AFile revient ensuite à l'écran
- principal.
-
- Modification_de_structure
-
- La modification de structure vous permet de modifier la définition
- d'un fichier existant, c'est-à-dire d'ajouter des champs, d'en supprimer, ou
- d'en modifier. Notez qu'il est impossible de modifier le type d'un champ, et
- de détruire tous les champs. Sinon, toutes les autres caractéristiques
- peuvent être changées.
- La requête de modification est la même que celle utilisée pour la
- définition du fichier (voir paragraphe "Définition_de_structure"). Les
- seules différences sont que le gadget "Type" et l'item "Copie struct." sont
- désactivés.
- Une fois la nouvelle structure définie, utilisez l'item "Enregistre"
- pour valider vos modifications : AFile convertira alors automatiquement le
- fichier dans la nouvelle structure. Notez que les enregistrements marqués
- comme détruits sont perdus lors de cette opération, et que cette convertion
- peut échouer s'il ne reste pas assez de place sur le volume où se trouve le
- fichier.
- Si la conversion fait que des données seraient perdues (champs
- supprimés, champs plus courts, ou enregistrements marqués comme détruits),
- AFile vous demandera de confirmer l'opération.
-
- Accès_aux_données
-
- L'écran se compose d'une zone principale dans laquelle sont
- affichées les données, d'une ligne d'état et une rangée de gadgets.
- Les gadgets contenant les données sont en principe de la même
- largeur que le champ correspondant, sauf si l'écran n'est pas assez large.
- Lorsque vous modifiez la valeur d'un champ, AFile vérifie que la nouvelle
- valeur est compatible avec le type du champ. Les dates doivent être
- introduites sous la forme "JJ/MM/AA". La spécification "?" permet
- d'introduire facilement la date du jour.
- La ligne d'état indique le nom du fichier et la position courante
- sous la forme X/Y (X est le numéro de l'enregistrement courant, Y le numéro
- du dernier enregistrement). Lorsqu'un tri est actif, le nom du fichier est
- suivit de la mention "(trié)". Si l'enregistrement courant a été modifié, la
- mention "Modifié" s'affiche à droite.
- La rangée de gadget permet les opérations suivantes (de gauche à
- droite) :
-
- accès au premier enregistrement
- accès à l'enregistrement précédent
- écriture de l'enregistrement courant
- accès à l'enregistrement suivant
- accès au dernier enregistrement
- accès à l'enregistrement n
- effaçage de l'enregistrement courant
- impression de n enregistrements à partir de l'enregistrement courant
-
- Enfin, les deux gadgets tout à droite permettent d'afficher la page
- précédente et suivante, si tous les champs ne peuvent être affichés en même
- temps. Si l'enregistrement courant est modifié, ces modifications seront
- automatiquement écrites si vous changez d'enregistrement. Si vous êtes
- positionnés sur le dernier enregistrement, demander à accéder à
- l'enregistrement suivant créera automatiquement un nouvel enregistrement.
- Les autres opérations sont accessibles via trois menus. Ces menus
- sont décrits aux paragraphes "Le_menu_Fichier", "Le_menu_Edition", et
- "Le_menu_Spécial".
-
- Le_menu_Fichier
-
- Récupère enreg.
- Pour AFile, effacer un enregistrement signifie positionner un
- indicateur au début de l'enregistrement, qui signale que cet
- enregistrement est effacé, et qu'il ne faut plus y accéder.
- L'enregistrement n'est donc pas détruit physiquement. Cette
- option du menu vous permet de récupérer tous les enregistrements
- marqués comme détruits, pour pouvoir y accéder de nouveau.
-
- Compacte fichier
- Permet de détruire physiquement les enregistrements marqués
- comme détruits. Cela veut dire que ces enregistrements ne
- pourront plus être récupérés. En contrepartie, la taille du
- fichier diminuera, car les enregistrements détruits seront
- éliminés. AFile vous demandera confirmation avant de lancer
- l'opération. Notez que cette opération peut échouer s'il ne
- reste pas assez de place sur le volume où se trouve le fichier.
-
- Informations
- Affiche des informations sur le fichier courant : son nom, le
- nombre de champs, la taille d'un enregistrement, le nombre
- d'enregistrements, et le nombre d'enregistrements marqués comme
- détruits.
-
- Imprime structure
- Imprime la structure du fichier, c'est-à-dire les définitions
- des champs et la taille des enregistrements. L'impression peut
- être envoyée vers un fichier.
-
- Ferme fichier
- Permet de fermer le fichier et de revenir à l'écran principal.
-
- Le_menu_Edition
-
- Annule modifs
- Permet de relire l'enregistrement courant, ce qui annule toute
- modification des données dans les champs (à condition que ces
- modifications n'aient pas été enregistrées).
-
- Select. masque
- Sélectionne un masque de saisie. Une requête de fichier
- apparaitra pour voir permettre de choisir le masque. Les masques
- de saisie sont décrits au chapitre "Masques_de_saisie".
-
- Sans masque
- Désactive le masque de saisie courant.
-
- Importer
- Permet d'importer des données, c'est-à-dire de récupérer des
- données provenant d'un fichier ASCII. Les nouveaux
- enregistrements seront ajoutés à la fin du fichier. Une boite de
- requête apparaitra pour vous permettre d'indiquer les différents
- paramètres nécessaire. Cette requête est décrite au paragraphe
- "Import_Export".
-
- Exporter
- Permet d'exporter des données, c'est-à-dire d'extraire des
- données vers un fichier ASCII. Tous les enregistrements du
- fichier seront exportés. Une boite de requête apparaitra pour
- vous permettre d'indiquer les différents paramètres nécessaire.
- Cette requête est décrite au paragraphe "Import_Export".
-
- Chercher
- Permet de chercher un enregistrement contenant une valeur
- précise dans un champ. Une boite de requête vous permettra de
- sélectionner le champ sur lequel vous voulez faire une
- recherche. AFile vous demandera ensuite la chaine à rechercher,
- et commencera la recherche à partir de l'enregistrement courant.
- Par défaut, AFile cherche un enregistrement dont le champ
- contient exactement la valeur indiquée. Cependant, si la chaine
- que vous entrez commence par un point d'interrogation (par
- exemple "?COU"), AFile cherchera un enregistrement dont le champ
- contient la valeur (il trouvera donc "BEAUCOUP" par exemple).
- Pour chercher une valeur commençant par un point
- d'interrogation, il vous suffit d'ajouter un caractère '\'
- devant la chaine.
-
- En résumé :
-
- "coucou" cherche exactement "coucou"
- "?coucou" cherche un champ qui contient "coucou"
- "\?coucou" cherche exactement "?coucou"
- "\\coucou" cherche exactement "\coucou"
- "\coucou" cherche exactement "coucou"
-
- Chercher suivant
- Permet de poursuivre une recherche.
-
- Le_menu_Spécial
-
- Activer tri
- Permet de trier les enregistrements sur un champ. Une première
- boîte de requête vous permettra d'indiquer le champ sur lequel
- effectuer le tri. Une seconde boite de requête vous permettra
- d'indiquer les paramètres du tri : ordre croissant ou
- décroissant, avec ou sans différenciation des minuscules et des
- majuscules. Une fois le tri effectué, AFile se positionne sur le
- premier enregistrement dans l'ordre du tri. Tous les
- déplacements (premier/précédent/suivant/dernier) se font ensuite
- en utilisant l'ordre du tri.
- Notez que AFile réalise un tri "logique" : l'ordre des
- enregistrements dans le fichier n'est pas modifié. Un tri peut
- donc réclamer beaucoup de mémoire si le fichier contient
- beaucoup d'enregistrements. Enfin, tant qu'un tri est actif, les
- opérations "Récup. enreg" et "Compacte fichier", l'ajout ou la
- suppression d'enregistrements, ainsi que la modification du
- champ de tri sont interdits.
-
- Désactiver tri
- Annule le tri précédent. Ceci permet à la fois de libérer la
- mémoire utilisée par AFile pour le tri, mais surtout d'accéder
- aux enregistrements dans l'ordre physique dans le fichier et de
- pouvoir ajouter ou supprimer des enregistrements.
-
- Reclasser fichier
- Modifie l'ordre physique des enregistrements, pour qu'il soit
- conforme au tri actif. Notez que les enregistrements marqués
- comme détruits sont perdus lors de cette opération, et que ce
- reclassement peut échouer s'il ne reste pas assez de place sur
- le volume où se trouve le fichier. AFile vous demandera
- confirmation avant de lancer l'opération.
-
- Exécuter script
- Permet d'exécuter un script AREXX. Une requête de fichier vous
- permettra d'indiquer le nom du script à exécuter. L'interface
- AREXX de AFile est décrite au paragraphe "Interface_AREXX".
-
- Import_Export
-
- La requête d'importation (exportation) vous permet d'abord
- d'indiquer le nom du fichier source (cible).
- Il vous faudra ensuite indiquer le caractère séparateur de champs,
- et le caractère séparateur d'enregistrements. Ces caractères peuvent être
- indiqués directement (par exemple "/"), ou sous forme de code ASCII décimal
- (par exemple "10" pour une fin de ligne). Notez que dans ce cas, le code
- ASCII doit faire au moins deux chiffres : "2" donne le caractère "2", "02"
- donne le caractère de code ASCII égal à 2.
- Il vous faudra enfin indiquer un numéro d'ordre pour chaque champ :
- les champs seront importés (exportés) dans l'ordre indiqué. Les champs pour
- lesquels vous n'aurez rien indiqué ne seront pas importés (exportés). Lors
- de l'importation, le numéro d'ordre peut être assimilé à un numéro de
- colonne dans le fichier source. Il permet donc d'ignorer des données, ou
- d'intervertir l'ordre de données.
-
- Masques_de_saisie
-
- Les masques de saisie remplissent deux fonctions : assister
- l'utilisateur pendant la saisie, et vérifier les données saisies.
- Un masque est défini par un fichier texte composé d'une suite de
- lignes au format :
-
- nom champ<tab>nom script<tab>message
-
- La notation <tab> désigne une ou plusieurs tabulations. Les lignes vides, ou
- commençant par un caractère ';', sont ignorées.
- Le message est affiché au dessus de la ligne d'état lorsque le champ
- est sélectionné. Le script AREXX indiqué (si son nom est différent de "-")
- est appelé à chaque modification du champ, avec la nouvelle valeur comme
- unique argument. Il doit renvoyer un code retour nul si cette valeur est
- acceptée, un code retour non nul si cette valeur est refusée. Pendant
- l'exécution du script, les ordres SEEK, WRITE, APPEND, DELETE, SEARCH, SORT,
- RELEASE, SETFIELD, et CLOSE sont interdits sur le fichier courant.
- La sélection d'un masque se fait à l'aide de l'item "Select. masque"
- du menu "Edition". Pour annuler la sélection d'un masque, utilisez l'item
- "Sans masque" du menu "Edition".
- Il est également possible d'indiquer un masque au démarrage. Depuis
- le CLI, il suffit d'indiquer les arguments "INPUTMASK <nom du masque>".
- Depuis le Workbench, il suffit de mettre une ligne "INPUTMASK=<nom du
- masque>" dans le champ "TOOL TYPES" de l'icône du fichier.
-
- Alias
-
- Un alias est un moyen de faciliter l'entrée des données, en vous
- permettant de définir des abbréviations. Un exemple est l'introduction de
- "?" dans un champ de type DATE, pour entrer la date du jour (cette
- possibilité est déjà intégrée dans AFile, voir paragraphe
- "Accès_aux_données").
- AFile vous permet de définir vos propres alias, à l'aide d'un
- fichier texte composé d'une suite de lignes au format :
-
- nom_champ<tab>alias<tab>valeur
-
- La notation <tab> désigne une ou plusieurs tabulations. Les lignes vides, ou
- commençant par un caractère ';', sont ignorées.
- Le fichier d'alias doit avoir pour nom le nom du fichier de données
- auquel il se rapporte, suivit du suffixe ".alias". Par exemple, si votre
- fichier de données s'appelle "Adresses", le nom du fichier d'alias devra
- être "Adresses.alias". Le fichier d'alias est chargé automatiquement à
- l'ouverture du fichier de données.
- Voici un exemple d'alias : si vous créez un fichier d'alias avec une
- ligne "PAYS<tab>RFA<tab>REPUBLIQUE FEDERALE D'ALLEMAGNE", chaque fois que
- l'utilisateur entrera la valeur "RFA" dans le champ "PAYS", celle-ci sera
- automatiquement remplacée par "REPUBLIQUE FEDERALE D'ALLEMAGNE". Notez que
- le remplacement des alias se fait avant l'exécution d'un éventuel masque de
- saisie.
-
- Interface_AREXX
-
- Le nom du port AREXX est "AFile_rexx". Il est possible de lancer un
- script soit depuis le menu "Projet" de l'écran principal, soit depuis le
- menu "Spécial" sur l'écran de visualisation des enregistrement. Dans ce
- dernier cas, le fichier courant est automatiquement sélectionné comme
- fichier de travail, et la position dans le fichier est celle de
- l'enregistrement actuellement affiché.
-
- Voici la liste des commandes reconnues :
-
- OPEN nom Ouvre le fichier indiqué, et se positionne sur le
- premier enregistrement. Ce fichier N'EST PAS
- sélectionné comme fichier de travail.
- SELECT nom Sélectionne le fichier indiqué comme fichier de
- travail. Ce fichier doit avoir été ouvert par une
- commande "OPEN".
- CLOSE nom Ferme le fichier indiqué
- CLOSE ALL Ferme tous les fichiers ouverts
-
- Les commandes suivantes sont appliquées au dernier fichier sélectionné par
- la commande SELECT.
-
- APPEND Crée un nouvel enregistrement, et se positionne
- dessus
- SEEK FIRST Se positionne sur le premier enregistrement
- SEEK LAST Se positionne sur le dernier enregistrement
- SEEK NEXT Se positionne sur l'enregistrement suivant
- SEEK PREV Se positionne sur l'enregistrement précédent
- SEEK n Se positionne sur l'enregistrement numéro n
- SEARCH nom val [NOCASE]
- Cherche un enregistrement dont le champ "nom" a
- exactement la valeur "val" (voir description de
- l'item "Cherche" plus haut pour les conventions au
- sujet de "val"). L'option "NOCASE" permet une
- recherche sans différencier minuscules et
- majuscules.
- SEARCH NEXT Poursuit la recherche
- INFO Retourne des informations sur le fichier courant
- dans la variable RESULT : "nom complet du fichier"
- <nb de champs> <lg enreg> <nb enreg> <nb enreg
- détruits>
- SORT nom [DECREASE] [NOCASE]
- Active un tri sur le champ indiqué. L'option
- "DECREASE" permet d'avoir un tri par ordre
- décroissant, l'option "NOCASE" permet de ne pas
- différencier minuscules et majuscules.
- RELEASE Désactive le tri courant
-
- Les commandes suivantes sont appliquées à l'enregistrement courant.
-
- WRITE Ecrit l'enregistrement courant
- DELETE Détruit l'enregistrement courant
- GETFIELD nom Retourne le contenu du champ "nom" dans la variable
- RESULT
- SETFIELD nom val Modifie le contenu du champ "nom". ATTENTION !! LA
- VALEUR DOIT ETRE MISE ENTRE GUILLEMETS !!
- FIELDTYPE nom Retourne le type du champ "nom" (A/N/S/D/B) tel que
- déclaré dans la structure du fichier
- FIELDLEN nom Retourne la longueur du champ "nom", telle que
- déclarée dans la structure du fichier. Pour les
- champs numérique, cette longueur tient compte du
- "." s'il y a des décimales
-
- Toutes ces commandes retournent 10 dans RC en cas d'échec, 0 sinon.
-
- Historique
-
- AFile a été écrit principalement en langage C, sur un Amiga 3000
- UNIX-1 (10 Mo de mémoire, lecteur de disquettes interne HD, disque interne
- de 100 Mo, lecteur SyQuest externe de 88 Mo, lecteur de disquettes externe,
- moniteur 1960 et imprimante Star LC24-10) connecté par un cable null-modem à
- un A500 avec 1 Mo de mémoire.
-
- v1.00 25-Jul-93, 60448 octets
- o Première version diffusée.
-
- v1.10 07-Aug-93, 62632 octets
- o Ajout des masques de saisie.
- o Ajout des commandes ARexx "FIELDTYPE" et "FIELDLEN"
- o Si un tri actif, indique "trié sur <nom champ>" au lieu de
- seulement "trié"
-
- v1.20 06-Sep-93, 64336 octets
- o Le nombre de champs n'est plus limité
- o Gestion du tri modifié : sélection du champ par requête, option
- "min = MAJ", interface AREXX revue
- o On peut sélectionner le fichier texte pour importer/exporter à
- l'aide d'une requête de fichier
-
- v1.21 12-Sep-93, 64500 octets
- o Utilise les nouvelles versions des fonctions OuvreEcran(),
- RequeteFic() et GetDefaultTextFont()
-
- v1.30 15-Sep-93, 65612 octets
- o Entièrement localisé
-
- v1.31 07-Oct-93, 65704 octets
- o En fin d'exécution d'un script AREXX, attend l'appui sur RETURN
- pour fermer la fenêtre
- o Erreur corrigée: le tri sur les champs numérique se faisait dans
- l'ordre inverse de celui demandé par l'utilisateur
-
- v1.40 14-Oct-93, 67036 octets
- o On peut modifier la structure d'un fichier existant
- o Ajout des alias
- o Signale les erreurs éventuelles lors du chargement des masques de
- saisie et des alias
- o Erreur corrigée dans la gestion des requêtes de chaines
- o Un peu de ménage dans le source...
-
-
-
-
-