“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 161 — #171
i
i
i
i
i
i
i
i
3.7 Les besoins non déclaratifs
161
Lire un fichier
L’opération File.readList lit tout le contenu du fichier et renvoie une chaîne de
caractères :
L={File.readList "foo.txt"}
Cet exemple lit le fichier foo.txt et crée la chaîne L. Nous pouvons aussi écrire :
L={File.readList ´foo.txt´}
Rappelez-vous que "foo.txt" est une chaîne (une liste de codes de caractère) et
´foo.txt´ est un atome (une constante avec une représentation imprimée). Le nom
du fichier peut être représenté des deux manières. Il y a une troisième manière pour
représenter un nom de fichier : comme une chaîne virtuelle (« virtual string »). Une
chaîne virtuelle est un tuple avec étiquette ´#´ qui représente une chaîne de caractères.
Par exemple, nous pouvons écrire :
L={File.readList foo#´.´#txt}
Le tuple foo#´.´#txt, que nous pouvons écrire comme ´#´(foo ´.´ txt),
représente la chaîne "foo.txt". L’utilisation des chaînes virtuelles nous évite de
faire des concaténations explicites des chaînes. Toutes les opérations de base de
Mozart qui prennent des chaînes sont valables aussi avec des chaînes virtuelles. Les
trois manières de charger foo.txt ont le même effet. Elles lient L à une liste des
codes de caractère dans le fichier foo.txt.
On peut aussi référencer un fichier par URL. Un URL (« Uniform Resource Locator ») est une adresse globale commode pour les fichiers parce qu’il est largement
soutenu par l’infrastructure du World Wide Web. Il est aussi facile de lire un fichier
par son URL que par son nom de fichier :
L={File.readList
´http ://www.mozart-oz.org/features.html´}
On peut utiliser les URL uniquement pour lire les fichiers, mais pas pour les écrire.
C’est parce que les URL sont traités par les serveurs Web, qui en général ne permettent
que la lecture.
Mozart a des opérations pour la lecture incrémentale ou paresseuse d’un fichier, au
lieu de tout d’un coup. C’est important pour des fichiers qui sont trop grands pour
l’espace mémoire du processus Mozart. Pour la simplicité, nous recommandons pour
l’instant de lire le fichier tout d’un coup. Dans la documentation de Mozart il est
expliqué comment faire la lecture incrémentale [35, 97].
© Dunod – La photocopie non autorisée est un délit
i
i
i
i
i
i
i
i
3.7 Les besoins non déclaratifs
161
Lire un fichier
L’opération File.readList lit tout le contenu du fichier et renvoie une chaîne de
caractères :
L={File.readList "foo.txt"}
Cet exemple lit le fichier foo.txt et crée la chaîne L. Nous pouvons aussi écrire :
L={File.readList ´foo.txt´}
Rappelez-vous que "foo.txt" est une chaîne (une liste de codes de caractère) et
´foo.txt´ est un atome (une constante avec une représentation imprimée). Le nom
du fichier peut être représenté des deux manières. Il y a une troisième manière pour
représenter un nom de fichier : comme une chaîne virtuelle (« virtual string »). Une
chaîne virtuelle est un tuple avec étiquette ´#´ qui représente une chaîne de caractères.
Par exemple, nous pouvons écrire :
L={File.readList foo#´.´#txt}
Le tuple foo#´.´#txt, que nous pouvons écrire comme ´#´(foo ´.´ txt),
représente la chaîne "foo.txt". L’utilisation des chaînes virtuelles nous évite de
faire des concaténations explicites des chaînes. Toutes les opérations de base de
Mozart qui prennent des chaînes sont valables aussi avec des chaînes virtuelles. Les
trois manières de charger foo.txt ont le même effet. Elles lient L à une liste des
codes de caractère dans le fichier foo.txt.
On peut aussi référencer un fichier par URL. Un URL (« Uniform Resource Locator ») est une adresse globale commode pour les fichiers parce qu’il est largement
soutenu par l’infrastructure du World Wide Web. Il est aussi facile de lire un fichier
par son URL que par son nom de fichier :
L={File.readList
´http ://www.mozart-oz.org/features.html´}
On peut utiliser les URL uniquement pour lire les fichiers, mais pas pour les écrire.
C’est parce que les URL sont traités par les serveurs Web, qui en général ne permettent
que la lecture.
Mozart a des opérations pour la lecture incrémentale ou paresseuse d’un fichier, au
lieu de tout d’un coup. C’est important pour des fichiers qui sont trop grands pour
l’espace mémoire du processus Mozart. Pour la simplicité, nous recommandons pour
l’instant de lire le fichier tout d’un coup. Dans la documentation de Mozart il est
expliqué comment faire la lecture incrémentale [35, 97].
© Dunod – La photocopie non autorisée est un délit
