Obligement - L'Amiga au maximum

Lundi 20 novembre 2017 - 19:45  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Programmation : AMOS - copie de fichiers (routines FCopy, AP_FCopy et Cprint)
(Article écrit par Denis Bernard et extrait d'Amiga News - mai 1993)


Cette fois-ci, voyons comment copier des fichiers sans faire appel à la commande CLI "Copy" et comment, grâce au compilateur, écrire indifféremment dans une fenêtre AMOS ou dans la fenêtre CLI/Shell courante.

Copie de fichiers

Le principe est simple, il suffit d'ouvrir le fichier source en lecture et le fichier destination en écriture. Ensuite, lire les données du fichier source et les écrire directement telles que dans le fichier destination. Au premier abord, la seule difficulté est la copie de gros fichiers. En fait, il ne faut pas tout lire d'un seul coup mais par petits blocs de données. L'opération est certes ralentie mais elle a le gros avantage de ne consommer que très peu de mémoire !

Supposons que vous vouliez copier c:Copy en RAM:, l'appel de la procédure se fait de la façon suivante :

FCOPY["c:Copy","RAM:Copy"]

Notez que cette procédure utilise un tampon de données de 1024 octets pris dans le tampon de variables d'AMOS. Vous pouvez accélérer la copie en augmentant la taille de ce tampon, sans oublier qu'il peut être nécessaire d'augmenter la taille de votre tampon de variables qui ne fait que 8 ko par défaut.

Rien que pour le plaisir : la même procédure programmée en AMOS Pro. On se permet le luxe de choisir la taille du tampon sans se soucier de celle du tampon de variables puisqu'on utilise une banque mémoire. Pour appeler la procédure, il faut lui transmettre un numéro de banque à utiliser et la taille du tampon de données. Si le numéro de banque est 0, la routine va chercher toute seule, comme une grande, une banque libre pour travailler. Exemple :

AP_FCOPY["c:Copy","RAM:Copy",O,4096]

...copiera le fichier c:Copy en RAM: avec un tampon de 4096 octets et en utilisant la première banque mémoire libre. Attention : cette routine ne fonctionne qu'avec AMOS Pro (commande Ssave) ! La routine peut être améliorée en lui faisant réserver automatiquement le plus de place possible pour que la copie soit plus rapide, ou encore en faisant en sorte de n'avoir à transmettre que le répertoire de destination au lieu du nom complet du fichier de destination.

Les joies du compilateur

Celui-ci permet de programmer des utilitaires CLI assez facilement. Il ne manque plus que la possibilité de faire ses sorties dans la fenêtre CLI courante. Qu'à cela ne tienne, il y a la bibliothèque dos.library pour ça ! La fonction Output() de cette bibliothèque donne l'adresse de la structure FileHandle de la fenêtre courante (ou du fichier de sortie courant), il suffit ensuite d'appeler la fonction Write() pour y envoyer du texte. Pas de panique, regardez le listing et vous comprendrez très vite.

La procédure CPRINT[] du listing d'exemple fait les sorties texte dans l'écran AMOS si votre programme est interprété et dans la fenêtre CLI d'où votre programme a été lancé si celui-ci est compilé.

Notez que si votre programme est compilé et que la fonction Output() renvoie un pointeur nul (programme lancé depuis le Workbench et/ou fenêtre inexistante), la routine n'imprime rien du tout. Vous pouvez donc l'améliorer en lui faisant ouvrir sa propre fenêtre CON.

Listings

AMOS

AMOS

AMOS


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