Repeat qui repeat pas!

titigrou

Membre expert
Club iGen
23 Décembre 2004
1 091
26
40
Lille
Hello,
Je voudrais faire un petit applescript qui m'écrit dans un fichier Heure.txt, la date du jour et l'heure 5 fois d'affilées (c'est un exemple)!
J'ai fait le code suivant

Bloc de code:
tell application "TextEdit"
    activate
    make new document
    repeat 5 times
        set CR to "########"
        set myDate to date string of (current date)
        set myTime to time string of (current date)
        set MessageEntier to myDate & return & myTime & return & CR
        set text of document 1 to MessageEntier as text
        save document 1 in "/Users/Antoine/Desktop/Programme LBC Local/Heure.txt"
    end repeat
end tell
Mais j'ai deux soucis:
- Il écrit une seule ligne (la 5ème j'imagine).
- Il me met une fenêtre comme quoi j"Le document Sans titre 2 n'a pas pu être exporté sous le nom "Heure.txt". Vous n'avez pas l'autorisation"

Quelqu'un aurait une solution?

Merci!

Antoine
 
Bonjour,


Oui, c'est le texte lors de la fin de la boucle qu'il écrit dans le document.
Pour avoir toutes les lignes, vous devez ajouter le texte dans le contenu existant de la variable 'MessageEntier'.
Note: La valeur de la variable myTime est toujours la même, car cela prends moins de deux dixièmes de seconde pour exécuter la boucle (sur mon ordinateur).

Pour la sauvegarde, c'est un problème AppleScript sur Sierra avec la commande 'save' lorsque le fichier n'existe pas.

Vous pouvez le faire sans utiliser TextEdit :

Bloc de code:
set thePath to "/Users/Antoine/Desktop/Programme LBC Local/Heure.txt"
set MessageEntier to ""
set CR to "########"
repeat 5 times
    tell (current date) to set {myDate, myTime} to {date string, time string}
    set MessageEntier to MessageEntier & myDate & return & myTime & return & CR
end repeat
try
    set openfile to open for access thePath with write permission
    set eof of openfile to 0 -- efface le contenu du fichier s'il le fichier contient déjà du texte
    write MessageEntier to openfile as «class utf8»
    close access openfile
on error
    try
        close access thePath
    end try
end try
------

Si vous voulez utiliser TextEdit, c'est comme ceci:

Bloc de code:
set thePath to "/Users/Antoine/Desktop/Programme LBC Local/Heure.txt"
close access (open for access thePath) -- création d'un fichier vide, cela ne fera rien si le fichier existe déjà
delay 0.5 -- une demi seconde d'attente (je n'ai pas besoin de cela sur ma machine), certaines machines ont besoin de temps pour la mise à jour du nouveau fichier sur le volume, augmente le nombre de seconde si vous avez encore un problème d'autorisation avec TextEdit

set MessageEntier to ""
set CR to "########"
repeat 5 times
    tell (current date) to set {myDate, myTime} to {date string, time string}
    set MessageEntier to MessageEntier & myDate & return & myTime & return & CR
end repeat

tell application "TextEdit"
    activate
    set theDoc to make new document with properties {text:MessageEntier, path:thePath}
    save theDoc
    close theDoc saving no -- ferme le document
end tell
 
Hello!
C'est exactement ça! Du coup pas la peine d'utiliser textedit effectivement!
Merci infiniment!
Antoine