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