Obligement - L'Amiga au maximum

Mercredi 24 avril 2024 - 03:47  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : GFA Basic - Moniteur de disquette GFA D-Mon (deuxième partie : fonctions dédiées aux fichiers)
(Article écrit par Étienne Mouratila et extrait d'Amiga News Tech - octobre 1990)


Nous avons commencé le mois dernier à mettre au point un mini utilitaire de disquettes, permettant diverses opérations sur les fichiers et sur les secteurs du disque. Ce mois-ci, nous abordons les premières fonctions dédiées aux fichiers.

Avant toute chose, il semble important de rappeler que GFA-Dmon (puisque tel est son nom) n'a, et de loin, pas la prétention d'égaler un programme comme DiskMaster ou DiskCraft. Simplement, il sert d'exemple pour la programmation en GFA Basic d'une part, et celle d'AmigaDOS depuis ce langage d'autre part. Un emploi modeste certes, mais utile tout de même.

Dans ce qui va suivre, nous allons développer trois procédures de type "primaire", c'est-à-dire pas bien compliquées. Elles portent les doux noms de FileView, FileErase et FileRename. Vous noterez que bien que GFA Basic dispose des instructions KILL et NAME AS, nous avons préféré, encore une fois pour des raisons d'illustration, appeler directement AmigaDOS via les fonctions DeleteFile() et Rename() de la dos.library. Cela complique un tout petit peu les choses, puisque les noms des fichiers sont passés sous forme de pointeurs plutôt que directement de chaînes de caractères, mais GFA Basic met à notre disposition la fonction V: qui renvoie l'adresse d'une variable alphanumérique. Exactement ce qu'il nous faut.

FileView

Cette procédure affiche à l'écran le contenu d'un fichier, de préférence texte ASCII, mais un fichier binaire peut également être visualisé de cette manière. Ici de même, nous avons préféré utiliser Open() de la dos.library plutôt qu'OPEN du GFA Basic (la nuance est subtile...) ainsi que Read() et Close() en lieu et place de INPUT # et CLOSE, respectivement.

Les choses sont de fait légèrement plus compliquées, Read() exigeant de savoir combien de caractères elle doit extraire du fichier. Pour nous simplifier toutefois un peu la vie, nous avons limité ce nombre à 1 et construisons une chaîne 1$ qui sera affichée à l'écran dès que sa longueur aura atteint 80 caractères (largeur maximale de l'écran) OU que l'on aura lu un Line-Feed (ASC1110). On passe alors à la ligne suivante, et, toutes les 20 lignes affichées, on demande à l'utilisateur s'il désire poursuivre la visualisation ou bien s'il préfère arrêter là. Dans le second cas, la boucle WHILE... WEND se termine, sinon elle continue jusqu'à ce que Read() ait renvoyé le code 0, signifiant que la fin du fichier a été atteinte.

GFA Basic
GFA Basic

FileRename

Cette procédure sert à donner un nouveau nom à un fichier existant sur la disquette. L'instruction GFA "FILESELECT" est utilisée pour entrer à la fois l'ancien nom du fichier et le nouveau, nous évitant ainsi l'écriture de routines de gestion des gadgets d'Intuition, totalement hors de propos ici.

Ensuite, et de même que dans la procédure précédente, on appelle la dos.library (fonction Rename()) avec comme paramètres les pointeurs sur les deux noms de fichiers, obtenus par la fonction V:. Si tout se passe bien, la variable status% contient la valeur -1, sinon elle contient un code d'erreur que nous affichons dans une ALERT, après avoir pris soin de ramener notre écran devant les autres grâce à la fonction de l'intuition.library ScreenToFront(), ceci au cas où une requête système serait apparue lors de l'exécution de Rename() ("Please insert volume XXXX in any drive", etc.).

GFA Basic

FileErase

La dernière procédure pour ce mois-ci propose d'effacer un fichier du disque, par le biais de la fonction DeleteFile() de la dos.library. Là encore, on aurait très bien pu utiliser l'instruction KILL du GFA Basic, mais bon... Tout comme dans FileRename, la variable status% contient le résultat de l'opération : -1 si tout va bien, un code d'erreur dans le cas contraire, code d'erreur qui est affiché dans une ALERT.

GFA Basic

Insérez donc ces trois petits listings dans le programme principal donné le mois dernier.

See you soon

Voilà, on s'arrêtera là pour aujourd'hui. Ces trois procédures ne sont certes pas bien compliquées, mais j'espère qu'elles vous auront suffisamment mis l'eau à la bouche pour nous retrouver le mois prochain, où nous développerons l'édition hexadécimale/ASCII d'un fichier et commencerons l'étude des fonctions de catalogue. D'ici là, bon courage...


[Retour en haut] / [Retour aux articles] [Article précédent]