Obligement - L'Amiga au maximum

Samedi 31 mai 2025 - 15:20  

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 : 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]