Satimage Précédent
Lecture et écriture de fichiers
Accueil Documentation Smile Calcul numérique Le calcul avec AppleScript Lecture et écriture de fichiers  

Si vous souhaitez essayer les exemples de cette page, vous devez tout d'abord exécuter l'ensemble du bloc de commandes suivant, qui crée un fichier temporaire f sur lequel s'appliqueront les exemples. Par esprit de concision, les exemples sont séquencés : chacun suppose que les exemples qui le précèdent ont déjà été exécutés.

Pour importer dans Smile l'ensemble des exemples présentés ici, veuillez cliquer sur le lien suivant :
Importer le script

set f to (path to "temp" from user domain as text) & (make new name)
open for access file f with write permission
close access f
set f to f as alias
  • AppleScript peut écrire dans un fichier tous les types de données qu'il sait gérer, en utilisant la commande write. Pour ouvrir le dictionnaire d'AppleScript à l'entrée write, sélectionnez le terme et appuyez sur ⇧⌘F.
    set ref_num to open for access f with write permission
    set eof of ref_num to 0
    write 2.67133413610864E+185 to ref_num
    close access ref_num
  • Par défaut la commande read lit un fichier donné en ASCII, un octet correspondant à un caractère.
    read f
      --  "foo bar?"
  • Pour lire dans un fichier une quantité qui n'est pas du texte, il est nécessaire de spécifier le type de données voulu en utilisant le paramètre as de la commande read.
    read f as real
      --  2.67133413610864E+185
  • Si vous spécifiez un type de données ayant une longueur fixée, ce qui est le cas de tous les types de données numériques, par défaut la commande read essaiera de lire l'ensemble du fichier et renverra la liste de toutes les valeurs plutôt que la première valeur lue.
    set the_int to 3 * 65536 + 2
    set ref_num to open for access f with write permission
    set eof of ref_num to 0
    write the_int to ref_num
    write 2 * the_int to ref_num
    write 3 * the_int to ref_num
    write 4 * the_int to ref_num
    close access ref_num

    read f as integer
      --  {196610, 393220, 589830, 786440}
  • Le paramètre as de la commande read gère d'autres types de données que vous pouvez utiliser en plus de integer et real pour lire des blocs de données de tailles arbitraires, ou bien examiner un fichier écrit dans un format inconnu, ou utilisant un alignement ou des blocs de remplissage (paddings) inconnus.
    small integer (2 octets)
    read f as small integer
      --  {3, 2, 6, 4, 9, 6, 12, 8}
    integer (4 octets)
    read f as integer
      --  {196610, 393220, 589830, 786440}
    double integer (8 octets)
    read f as double integer
      --  8.4443352045978E+14

    Note: du fait d'un bug d'AppleScript, as double integer ne renvoie pas une liste.
    small real (4 octets)
    read f as small real
      --  {2.75509291070902E-40, 5.51018582141805E-40, 8.26527873212707E-40, 1.10203716428361E-39}
    real (8 octets)
    read f as real
      --  {4.17205592655959E-309, 1.2516167777736E-308}

    Vous pouvez aussi utilisez ces types de données supplémentaires pour écrire dans un fichier. Par exemple, vous pouvez écrire des double integers (8 octets).
    set ref_num to open for access f with write permission
    set eof of ref_num to 0
    write (2 ^ 63 + 2 ^ 30) to ref_num as double integer
    close access ref_num

    read f as small integer
      --  {-32768, 0, 16384, 0}
  • AppleScript écrit les nombres réels au format binaire, avec deux types de données possible :
    real (8 octets) (par défaut)
    small real (4 octets)
    set the_real to pi
    set ref_num to open for access f with write permission
    set eof of ref_num to 0
    repeat with i from 0 to 3
        write i * pi to ref_num as small real
    end repeat
    close access ref_num

    (read binary f as real) as list of real
      --  {5.32864626443882E-315, 1.28317129238601E+4}
    (read binary f as small real) as list of real
      --  {0.0, 3.141592741013, 6.283185482025, 9.424777984619}
English version
Copyright ©2008 Paris, Satimage