-
Pour lire et écrire du texte dans des fichiers ASCII, utilisez les commandes de base d'AppleScript opérant sur les fichier : open for access, close access, get/set eof, read, et write.
Pour obtenir des informations sur ces commandes, sélectionnez File > Ouvrir un dictionnaire > Scripting Additions > StandardAdditions.osax, puis dans la fenêtre correspondante, sélectionnez Index > File Read/Write.
set f to alias ((path to "docs" as text) & "myTextFile.txt")
set s1 to "whatever "
set s2 to "1 2 3 4"
write s1 to f -- écrit au début du fichier
write s2 starting at (1 + (get eof f)) to f -- écrit à la fin du fichier
set s to read f
-- "whatever 1 2 3 4"
-
Pour créer un nouveau fichier, utilisez la commande open for access [...] with write permission. Tout appel à open for access doit être contrebalancé par un appel à close access.
set f to ((path to "docs" as text) & "myTextFile.txt")
set nref to open for access file f with write permission -- ceci crée un fichier vide
close access nref
write "whatever" to file f
-
Pour écraser un fichier existant, réinitialisez son marqueur EOF (fin de fichier) à l'aide de la commande set eof.
set f to ((path to "docs" as text) & "myTextFile.txt")
set nref to open for access file f with write permission
set eof nref to 0
write "whatever" to file f
close access nref
-
Pour écrire des nombres en ASCII dans un format donné, utilisez la commande format. Dans l'exemple suivant, jusqu'à 5 chiffres sont affichés à gauche du séparateur décimal, et 3 chiffres à droite du séparateur décimal. Les zéros inutiles à gauche du séparateur sont remplacés par des blancs, les autres à droite sont affichés.
format 16/5 into "^^^^^.000"
-- "␣␣␣␣3.200"
-
Pour formater des nombres en ASCII dans un format scientifique, utilisez la commande cformat ou la commande printf. La commande printf permet de formater une séquence d'arguments et de les insérer dans un texte. Son comportement est analogue à la fonction printf du c++.
printf "%s a %d ans. Il mesure %1.2fm." parameters {"Jules", 15, 1.7}
-- "Jules a 15 ans. Il mesure 1.70m."
-
Pour lire ou écrire un fichier séquentiellement, encapsulez les commandes read et write avec open for access [...] close for access. A l'intérieur de cette structure, référez-vous au fichier à l'aide de la référence renvoyée par open for access plutôt qu'en utilisant le chemin de fichier.
set f to ((path to "docs" as text) & "myTextFile.txt")
set nref to open for access file f with write permission
set s1 to read nref until " " -- lire jusqu'au premier espace rencontré
set s2 to read nref -- lire le reste du fichier
close access nref
|