A.8 Gestion des Fichiers



chargeimage, ci mot1



Affiche le fichier image mot1. Son coin supérieur gauche sera placé où se trouve la tortue . Les formats supportés sont le png et le jpg.

Le chemin spécifié doit être relatif par rapport au répertoire courant. Ex : chargeimage "tortue.jpg]



sauveimage mot liste



Sauve la zone de dessin dans le fichier mot du répertoire courant.

Les formats supportés sont le « jpg » et le « png ». Si aucun des deux n’est spécifié, le format « png » est choisi par défaut. Il est également possible de spécifier une zone de sélection à l’aide de la deuxième liste qui doit contenir quatre nombres [XminY minXmaxY max] qui permettent de spécifier les coordonnées des deux coins du rectangle de sélection. Un petit exemple :
 ## Dans l’éditeur
 pour test
 repete 20 [
   avance 30 tournedroite 18
   # sauve les images sous le nom 1.png, 2.png ... 20.png
   sauveimage mot compteur ".png  [-50 150 200 -150]
 ]
 fin
 
 ## Sur la ligne de commande:
 test
 videecran cachetortue repete 20 [chargeimage mot compteur ".png]

Et vous avez créé une petite animation!



catalogue, cat



Liste le contenu du répertoire par défaut. (Equivalent de la commande ls pour linux et dir pour DOS)



fixerepertoire, frep mot1



Fixe le répertoire en cours. Le chemin doit être absolu et doit être spécifié à l’aide d’un mot.



changedossier, cd mot1



Permet de choisir le répertoire courant. Le chemin est relatif par rapport au répertoire courant actuel. On peut utiliser la notation « .. » pour faire référence au répertoire parent.



repertoire, rep



Rend le répertoire en cours. Par défaut, il est fixé au répertoire utilisateur c’est à dire /home/votre_login pour les linuxiens, C :\WINDOWS pour les autres.



sauve mot1 liste2



Un bon exemple pour expliquer cela : sauve "essai.lgo [proc1 proc2 proc3] sauve dans le fichier essai.lgo du répertoire courant les procédures proc1, proc2 et proc3. Si l’extension .lgo est omise, elle est rajoutée par défaut. Le mot spécifié désigne un chemin relatif par rapport au répertoire courant. Cette commande ne fonctionne pas avec un chemin absolu.



sauved mot1



sauved "test.lgo sauve dans le fichier test.lgo du répertoire courant l’ensemble des procédures définies actuellement. Si l’extension .lgo est omise, elle est rajoutée par défaut. Le mot spécifié désigne un chemin relatif par rapport au répertoire courant. Cette commande ne fonctionne pas avec un chemin absolu.



ed, edite arg1



Ouvre dans l’éditeur l’ensemble des procédures dont le nom est spécifié dans la liste arg1 ou le mot arg1.



edtout, editetout



Ouvre dans l’éditeur l’ensemble des procédures définies actuellement.



ramene mot1



Ouvre et interprete le fichier mot1. Par exemple, pour effacer toutes les procédures définies et charger le fichier essai.lgo, on écrira : efp procs ramene "essai.lgo. Le mot spécifié désigne un chemin relatif par rapport au répertoire courant. Cette commande ne fonctionne pas avec un chemin absolu.



ouvreflux if fich



Lorsque l’on veut lire ou écrire dans un fichier, il faut au préalable ouvrir un flux vers ce fichier. L’argument fich doit être le nom du fichier considéré. On doit utiliser un mot pour indiquer le le nom du fichier dans le répertoire courant. L’argument id est le numéro que l’on affecte à ce flux afin de pouvoir l’identifier.



listeflux



Affiche la liste des différents flux ouverts avec leur identifiant.



lisligneflux id



Ouvre le flux dont l’identifiant est le numéro id puis lis une ligne dans ce fichier.



liscarflux id



Ouvre le flux dont le numéro d’identifiant est celui passé en argument puis lis un caractère dans ce fichier. Cette primitive renvoie un nombre représentant la valeur du caractère (semblable à liscar).



ecrisligneflux id liste2



Ecris la ligne de texte contenue dans la liste au début du fichier repéré par l’identifiant id. Attention, l’écriture n’est effective que lorsque l’on ferme le flux avec la primitive fermeflux.



ajouteligneflux id liste2



Ecris la ligne de texte contenue dans la liste à la fin du fichier repéré par l’identifiant id. Attention, l’écriture n’est effective que lorsque l’on ferme le flux avec la primitive fermeflux.



fermeflux id



Ferme le flux dont le numéro d’identifiant est celui passé en argument.



finflux ? id



Renvoie "vrai si on est arrivé à la fin du fichier. Renvoie "faux sinon.



Voici un exemple d’utilisation des primitives permettant de lire et écrire dans un fichier. Nous présenterons cet exemle pour une architecture de type Windows. Les autres utilisateurs sauront adapter l’exemple suivant.



L’objectif est de créer le fichier c :\exemple contenant les trois lignes :



ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstuvwxyz

0123456789

 # On ouvre un flux vers le fichier désiré. Ce flux sera repéré par le numéro 2
 fixerepertoire "c:\\
 ouvreflux 2 "exemple
 # On écrit les lignes désirées
 ecrisligneflux 2 [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
 ecrisligneflux 2 [abcdefghijklmnopqrstuvwxyz]
 ecrisligneflux 2 [0123456789]
 # On ferme le flux pour achever l’écriture
 fermeflux 2

A présent, on peut constater que l’écriture s’est bien passée :

                                                                                                  
                                                                                                  
 # On ouvre un flux vers le fichier à lire. Ce flux sera repéré par le numéro 0
 ouvreflux 0 "c:\\exemple
 # On lit les lignes du fichiers successivement
 ec lisligneflux 0
 ec lisligneflux 0
 ec lisligneflux 0
 # On ferme le flux
 fermeflux 0

Si on souhaite à présent rajouter la ligne « Formidable! » :

 fixerepertoire "C:\\
 ouvreflux 1 "exemple]
 ajouteligneflux 1 [Formidable !]
 fermeflux 1