# Lire contenu fichier applescript



## titigrou (7 Octobre 2016)

Hello,

J'ai un fichier toto.txt sur le bureau, et j'aimerai récupérer son contenu pour le coller ailleurs.
Du coup, j'ai fait un truc un peu sale, j'ouvre le fichier vec textedit, un delay, un ctrl A avec un keycode, un ctrl C ensuite et voilà...
Mais je me demandais si il était possible de copier automatiquement le contenu d'un fichier sans l'ouvrir et sans faire le ctrlA et ctrlC.

```
tell application "TextEdit"
    activate
    open chemin_vers_le_fichier
    delay 5
    tell application "System Events" to key code 12 using command down -- Tout sélectionner
    delay 2
    tell application "System Events" to key code 8 using command down -- Copier
    delay 2
end tell
```
Merci pour votre aide.

Antoine


----------



## zeltron54 (7 Octobre 2016)

Bonsoir,

La lecture d'un fichier se fait à l'aide des commandes open, read et close, pour respectivement ouvrir le fichier, en lire le contenu et le refermer :

Open for access fichier
set contenu to read fichier
close access fichier


----------



## titigrou (7 Octobre 2016)

Hello,
Merci pour ta réponse.
Donc concrètement, je fais

```
set chemin_vers_le_fichier to (("/Users/Antoine/Desktop/Programme/" as text) & "toto.txt")
open for access chemin_vers_le_fichier
```
Mais après pour copier le contenu (qui peut faire plusieurs lignes), dans une variable que on va appeler au hasard Vartoto, je peux faire comment?


----------



## zeltron54 (7 Octobre 2016)

set chemin_vers_le_fichier to (("/Users/Antoine/Desktop/Programme/" as text) & "toto.txt")
open for access chemin_vers_le_fichier
set vartoto to read chemin_vers_le_fichier
close access chemin_vers_le_fichier
display dialog vartoto -- pour voir ta variable vartoto

la dernière ligne t'affiche le contenu la variable.


----------



## titigrou (7 Octobre 2016)

Alors quand je fais ça et que je le lance, l'éditeur applescript me répond

```
error "Erreur de fin de fichier." number -39 from file "Macintosh HD:Users:Antoine:Desktop:programme:toto.txt"
```

Ca te dit quelque chose?


----------



## zeltron54 (7 Octobre 2016)

tu es sur du chemin de ton fichier? et est ce bien un fichier texte?
pour être sur d'avoir le bon chemin tu tapes:
set chemin_vers_le_fichier to "
tu glisses ton fichier sur la fenêtre et tu ajoutes les ".


----------



## titigrou (7 Octobre 2016)

J'ai glissé déposé mon fichier dans ma fenêtre apple script pour remplacer le path, du coup mon code ressemble à ça

```
set chemin_vers_le_fichier to "/Users/Antoine/Desktop/Programme/toto.txt"
--set chemin_vers_le_fichier to (("/Users/Antoine/Desktop/Programme/" as text) & "toto.txt")
open for access chemin_vers_le_fichier
set vartoto to read chemin_vers_le_fichier
close access chemin_vers_le_fichier
display dialog vartoto -- pour voir ta variable vartoto
```

et j'ai toujours

```
error "Erreur de fin de fichier." number -39 from file "Macintosh HD:Users:Antoine:Desktop:Programme:toto.txt"
```

Pour mon fichier txt, je l'ai crée avec textedit, mais il m'a crée un .rtf, que j'ai ensuite renommé en .txt, c'est peut être ça du coup?

Edit: j'ai trouvé comment créer un .txt directement, et ça fait toujours pareil.


----------



## zeltron54 (7 Octobre 2016)

En faisant un copier coller de ton code je n'ai pas de problème chez moi !
Je suppose donc que cela doit venir de ton fichier.


----------



## titigrou (7 Octobre 2016)

Ton fichier tu le crée comment du coup?
Ca doit venir de là!


----------



## zeltron54 (7 Octobre 2016)

J'ai fait 2 essais, un avec textedit, dans préférence coché format texte et un avec word et enregistrer sous format texte.


----------



## titigrou (7 Octobre 2016)

Et au niveau de l'encodage di format texte dans textedit tu as mis quoi?


----------



## zeltron54 (7 Octobre 2016)

L'encodage dans les préfs sont sur automatique. J'ai laissé tous les réglages qu'il y avait par défaut.


----------



## titigrou (7 Octobre 2016)

Arf je pige pas là alors!
On est bien ok ton code c'est ça?

```
set chemin_vers_le_fichier to "/Users/Antoine/Desktop/Programme/toto.txt"
open for access chemin_vers_le_fichier
set vartoto to read chemin_vers_le_fichier
close access chemin_vers_le_fichier
display dialog vartoto -- pour voir ta variable vartoto
```


----------



## zeltron54 (7 Octobre 2016)

Tout a fait le code est bon, je viens de refaire un copier coller de ton texte dans applescript et pas de problème.


----------

