# Aide Applescript



## macman31 (15 Août 2008)

Bonjour,
Je tente de créer en Applescript la version Mac de ce logiciel (pour PC) : Où est mon PC ? (description : http://www.logitheque.com/fiche.asp?I=23873&L=O%F9+est+mon+PC%3F)

Voici mon code applescript actuel : 



*set theTime to (current date)
set hrs to (theTime) as string
copy words 5 thru 5 of (hrs as string) to hrs

set rapport to do shell script "/usr/sbin/traceroute google.fr"

property notHidden : true

tell application "Mail"


    if notHidden then
        tell application "Mail" to set visible of every window to false
        set notHidden to false
    else
        tell application "Mail" to set visible of every window to true
        set notHidden to true
    end if


    set newMessage to (make new outgoing message at end of outgoing messages with properties {subject:"Rapport Traceroute du : " & theTime, content:"Rapport traceroute en cas de vol" & return & return & return & rapport & return & return & return & "Voilà, application lancée : " & return & return & theTime})

    tell newMessage
        make new recipient at end of to recipients with properties {address:"*jkdsghlqksjdhglkjqsdhglk@hotmail.fr*"}

        send newMessage

        delay 5
        quit application "Mail"

    end tell

    quit application "envoi traceroute mail"

end tell
*



(J'ai mis une fausse adresse mail.)

Donc j'aimerai que l'utilisateur entre dans un fichier nommé "adresse mail.txt" l' adresse mail où il souhaiterai envoyer le rapport traceroute, et que l'applescript récupère l'adresse, et la mette à la place de "jkdsghlqksjdhglkjqsdhglk@hotmail.fr", le fichier "adresse mail.txt" étant placé dans le même dossier que l'applescript.

Est-il aussi possible d'envoyer le mail sans passer par "Mail" ?
Je précise que c'est mon premier applescript.

Merci d'avance,


----------



## zacromatafalgar (15 Août 2008)

Salut,

Le plus simple, selon moi, serait de créer un progiciel et de mettre le fichier *adresse mail.txt* dans le dossier resource du paquet et au premier lancement afficher un dialogue pour la saisie de l'adresse.

Oui il est possible d'envoyer un mail sans l'aide de Mail.app, en utilisant la commande mail du terminal. Par contre je ne sais pas comment récupérer l'adresse de l'expéditeur sans utiliser Mail.app&#8230;

J'ai fait un applet, qui utilise Mail.app pour récupérer l'adresse de l'expéditeur, si ça peut te servir&#8230;



```
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
	set thefile to (path to resource "adresse mail.txt")
	set theDate to (current date)
	set messSub to ("Rapport Traceroute du : " & theDate)
	set messTo to readFile(thefile)
	set rapport to do shell script "/usr/sbin/traceroute google.fr"
	
	
	tell application "Mail"
		set messFrom to email addresses of first account
		quit
	end tell
	
	do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
end run

on readFile(PathFile)
	try
		open for access PathFile
		set theAddress to read PathFile
		close access PathFile
	on error
		close access PathFile
		set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "theAddress@mail.com" buttons "Ok" default button 1)
		writeFile(PathFile, theAddress)
	end try
	return theAddress
end readFile

on writeFile(PathFile, theData)
	set x to open for access file (PathFile as Unicode text) with write permission
	try
		set eof x to 0
		write theData to x
		close access x
	on error
		close access x
	end try
end writeFile
```



Note du modo : C'est un topic pour "Développement sur Mac, ça, pas pour "Applications" ! On y va.


----------



## macman31 (22 Août 2008)

Merci beaucoup, mais je n'es suis qu'à mes débuts en programmation, donc pourrai-tu m'expliquer comment créer un "progiciel"

J'ai aussi remarqué qu'applescript ne voulait pas compiler ton applet : (voir image)







Merci beaucoup.




PS : je ne voulait pas à avoir à passer par "Mail.app" pour ne pas à avoir à configurer de compte.


----------



## zacromatafalgar (22 Août 2008)

macman31 a dit:


> Merci beaucoup, mais je n'es suis qu'à mes débuts en programmation, donc pourrai-tu m'expliquer comment créer un "progiciel"


Il suffit de choisir "Progiciel" dans le menu déroulant de la fenêtre d'enregistrement du script.




Click for full size - Uploaded with plasq's Skitch


macman31 a dit:


> J'ai aussi remarqué qu'applescript ne voulait pas compiler ton applet : (voir image)


Pas de problème chez moije ne comprends pas



Click for full size - Uploaded with plasq's Skitch

Merci beaucoup.




macman31 a dit:


> PS : je ne voulait pas à avoir à passer par "Mail.app" pour ne pas à avoir à configurer de compte.


Il faut donc modifier la procédure d'obtention de l'adresse expéditeur, je viens d'essayer en mettant l'adresse d'un amis et je pensais que le système allait bloquer l'envoi mais ce n'est pas le cas. 
On peut donc mettre celle-ci dans une property en début de script et supprimer l'appel à l'application Mail.
rajoute :

```
property messFrom : "tonAdresse@fai.com"
```
et efface :

```
tell application "Mail"
		set messFrom to email addresses of first account
		quit
	end tell
```


----------



## macman31 (24 Août 2008)

Merci beaucoup pour toutes ces infos.

Je pense avoir trouvé la cause de l'erreur :

Fenêtre d'information du logiciel éditeur de script :

-----------------------------------------------------------------------------------------------------------------


* Éditeur de scripts*​ 
2.0 (v43.1)

AppleScript FU1-1.9.3

Cette application permet de créer, de modifier et d&#8217;exécuter des scripts AppleScript ainsi que d&#8217;autres scripts basés sur le language OSA. 

© Copyright 1997-2003. Apple Computer Inc.,

 all rights reserved.

-----------------------------------------------------------------------------------------------------------------


J'ai remarqué sur un site que la version la plus récente d'Applescript est la version 2, or ma version est la 1.9.3 .

La date du copiright me parait aussi un peut vieille ( 2003 ).

Je tient à préciser que je suis sous panther ( 10.3.9 )

Je voudrai savoir quelle est la commande qui remplace "   set thefile to (path to resource "adresse mail.txt")   " pour ma version d'Applescript.

Je voudrais aussi faire remarquer qu'au lieu d'enregistrer en "progiciel", j'ai enregistrer en "lot d'applications", car l'option "progiciel" n'apparait pas dans ma version d'éditeur de script, mais l'option me semble la même ( l'option "afficher le contenu du paquet" apparait lors d'un  ctrl-clic sur l'application, et il y a bien un dossier  "Resources" dans le dossier "Contents"


Voilà, merci d'avance pour la réponse à mes questions. 

P.S. : je peut reprendre le nom "MacTrace" pour mon logiciel ?​


----------



## macman31 (24 Août 2008)

Re-bonjour :

J'ai fait une recherche, et je suis tombé sur cette commande : "  ((path to me as text) & "Contents:Resources:adressemail.txt")  " qui remplace la commande "   (path to resource "adresse mail.txt")   "  

éditeur de script compile bien ce passage, mais dans la foulée, il ne reconnaît pas " readfile(thefile) " (il met "readfile" en vert ( il le reconnait comme une variable) et "thefile" aussi. 
J'ai donc mis des espaces, ce qui donne "read file (thefile)", il met bien "read file" en bleu (instruction), mais là, il me dit, lors de l'exécution du "progiciel" :

 "end of file error"   

Il y a aussi marqué plusieurs fois readfile et writefile, ou j'ai donc mis des espaces ( read file et write file )

Il me met, au "read file (Pathfile)" :

----------------------------
Erreur de syntaxe

file (PathFile) est illégal en tant que paramètre formel.
-------------------------------

et il garde read et file en vert.:mouais:

Je remet "readfile(Pathfile)", et la il fait le même message d'erreur pour "write file (PathFile, theData)"

Voilà, j'en suis là.  

Merci pour toutes vos réponces futures. 


PS : Merci au modo :modo: qui a déplacé le post, je n'avais pas vu la catégorie.


----------



## macman31 (25 Août 2008)

En cherchant un peut sur internet, je suis tombé sur cette commande : "   

set foo to (open for access (POSIX file PathFile))
        set theAdress to (read foo for (get eof foo))
        close access foo


   ", qui remplace : "  

open for access PathFile
        set theAddress to read PathFile
        close access PathFile

   ", et j'ai mis " set messTo to read file (thefile) " au lieu de " set messTo to readfile(thefile) ".


La compilation fonctionne, j'exécute le script et au bout d'un moment il s'arrête, mais a aucun moment il n'a affiché un message d'erreur, et il ne ma jamais demandé l'adresse du destinataire.

Si je met mon adresse mail dans le fichier "adresse mail.txt, il m'envoie le rapport traceroute, mais sinon il a l'air de l'envoyer à personne, car il n'y a aucune adresse mail dans le fichier, et il n'y met pas l'adresse par défaut.

Voilà, j'en suis là, est-ce que vous pourriez me dire comment faire pour qu'il demande l'adresse mail ?

Voici mon script pour l'instant :


```
property messFrom : "dhdtyhdhjdhdhgh@hotmail.fr"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
    set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
    set theDate to (current date)
    set messSub to ("Rapport Traceroute du : " & theDate)
    set messTo to read file (thefile)
    set rapport to do shell script "/usr/sbin/traceroute google.fr"
    
    
    do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom

end run

on readfile(PathFile)
    try
       set foo to (open for access (POSIX file PathFile))
        set theAdress to (read foo for (get eof foo))
        close access foo
    on error
        close access PathFile
        set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "theAddress@mail.com" buttons "Ok" default button 1)
        writeFile(PathFile, theAddress)
    end try
    return theAddress
end readfile

on writeFile(PathFile, theData)
    set x to open for access file (PathFile as Unicode text) with write permission
    try
        set eof x to 0
        write theData to x
        close access x
    on error
        close access x
    end try
end writeFile
```
(j'ai brouillé l'adresse mail)

Merci beaucoup,


----------



## ceslinstinct (25 Août 2008)

macman31 a dit:


> En cherchant un peut sur internet, je suis tombé sur cette commande : "
> 
> set foo to (open for access (POSIX file PathFile))
> set theAdress to (read foo for (get eof foo))
> ...


Bonjour

*zacromatafalgar* t'as indiqué la façon d'utiliser les 2 routines en dessous du code run.

Au premier coup d'&#339;il elle ne servent à rien dans ton code puisque tu les by-passe.

@+


----------



## zacromatafalgar (25 Août 2008)

macman31 a dit:


> P.S. : je peut reprendre le nom "MacTrace" pour mon logiciel ?


Pas de problème&#8230; 



macman31 a dit:


> J'ai fait une recherche, et je suis tombé sur cette commande : "  ((path to me as text) & "Contents:Resources:adressemail.txt")  " qui remplace la commande "   (path to resource "adresse mail.txt")   "


Il y a un moment que j'ai laissé tombé Panther, l'essentiel est que tu aies trouvé&#8230;



macman31 a dit:


> éditeur de script compile bien ce passage, mais dans la foulée, il ne reconnaît pas " readfile(thefile) " (il met "readfile" en vert ( il le reconnait comme une variable) et "thefile" aussi.
> J'ai donc mis des espaces, ce qui donne "read file (thefile)", il met bien "read file" en bleu (instruction), mais là, il me dit, lors de l'exécution du "progiciel" : eof error


Il est normal que les appels aux fonctions soient en vert, si tu rajoutes des espaces la fonction n'est plus appelée.



macman31 a dit:


> En cherchant un peut sur internet, je suis tombé sur cette commande : "
> 
> set foo to (open for access (POSIX file PathFile))
> set theAdress to (read foo for (get eof foo))
> ...


 Tu vas te retrouver avec une erreur car on fourni déjà un chemin de type Finder or tu essaie de le convertir de nouveau en type Finder (posix file), à la rigueur tu peux mettre :

```
set x to open for access pathFile
set theAdress to read x
close access x
```
cette syntaxe fonctionne peut être mieux sous Panther&#8230;


macman31 a dit:


> ", et j'ai mis " set messTo to read file (thefile) " au lieu de " set messTo to readfile(thefile) ".


Encore une fois, ce n'est pas une bonne idée&#8230; 



macman31 a dit:


> La compilation fonctionne, j'exécute le script et au bout d'un moment il s'arrête, mais a aucun moment il n'a affiché un message d'erreur, et il ne ma jamais demandé l'adresse du destinataire.


C'est normal qu'il ne te demande pas l'adresse car tu as modifié l'appel à la fonction ("read file" pour "readFile")

J'ai retouché ton script et il fonctionne chez moi sur Leopard, après avoir mis une adresse normale pour messFrom&#8230; 
	
	



```
property messFrom : "testAddress@orange.fr"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
	set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
	set theDate to (current date)
	set messSub to ("Rapport Traceroute du : " & theDate)
	set messTo to readFile(thefile)
	set rapport to do shell script "/usr/sbin/traceroute google.fr"
	
	
	do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
	
end run

on readFile(PathFile)
	try
		set foo to (open for access (PathFile))
		set theAddress to (read foo)
		close access foo
	on error
		close access foo
		set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "theAddress@mail.com" buttons "Ok" default button 1)
		writeFile(PathFile, theAddress)
	end try
	return theAddress
end readFile

on writeFile(PathFile, theData)
	set x to open for access file (PathFile as Unicode text) with write permission
	try
		set eof x to 0
		write theData to x
		close access x
	on error
		close access x
	end try
end writeFile
```


----------



## zacromatafalgar (25 Août 2008)

ceslinstinct a dit:


> Bonjour
> 
> *zacromatafalgar* t'as indiqué la façon d'utiliser les 2 routines en dessous du code run.
> 
> ...


Salut,

Si si, elles sont bien utilisées&#8230;
readFile est utilisée au début du bloc run, à l'initialisation des variables (set messTo to readFile(thefile)) et writeFile dans la fonction readFile() lors de l'inscription de l'adresse du destinataire&#8230;


----------



## ceslinstinct (25 Août 2008)

zacromatafalgar a dit:


> Salut,
> 
> Si si, elles sont bien utilisées
> readFile est utilisée au début du bloc run, à l'initialisation des variables (set messTo to readFile(thefile)) et writeFile dans la fonction readFile() lors de l'inscription de l'adresse du destinataire


Je prend en route, donc j'ai regardé son code j'ai bien vue que le tien doit fonctionner mais le sien en Read File ce sont des mots clés et pas une variable.

Ce que j'ai compris de son code c'est qu'il va lire le fichier directement sans passer par la routine de lecture de ce dernier.

Donc les routines Read et Write sont inutilisés par lui mais pas par toi.

Je voie ce code d'une façon différente (c'est ce que permet AS pour l'écriture), tu permet que je fasse une version pour *moi* (je vais adapter ton code a ma façon d'utiliser mes applications)?

Que ce soit le script qui contrôle tout, y compris la création du fichier texte si il n'existe pas.

Cordialement


----------



## zacromatafalgar (25 Août 2008)

ceslinstinct a dit:


> Je prend en route, donc j'ai regardé son code j'ai bien vue que le tien doit fonctionner mais le sien en Read File ce sont des mots clés et pas une variable.
> 
> Ce que j'ai compris de son code c'est qu'il va lire le fichier directement sans passer par la routine de lecture de ce dernier.
> 
> Donc les routines Read et Write sont inutilisés par lui mais pas par toi.


Et c'est bien pour ça que son script ne lui demande jamais de saisir l'adresse


ceslinstinct a dit:


> Je voie ce code d'une façon différente (c'est ce que permet AS pour l'écriture), tu permet que je fasse une version pour *moi* (je vais adapter ton code a ma façon d'utiliser mes applications)?


Bien  sûr


----------



## macman31 (25 Août 2008)

Merci pour toutes ces réponses, le script se compile bien et fonctionne la première fois ( il me demande bien l'adresse et crée bien le fichier "adresse mail.txt", mais lors de la seconde exécution, au bout d'un moment, il met un message d'erreur (voir image) :






alors qu'il est bien marqué "   

mail *-s* " & (quoted form of messSub) & " " & messTo & " -f " & messFrom

  ".


Je précise que c'est mon premier applescript, que j'ai procédé "à taton" avec des morceaux de codes trouvés sur le web, et le code de zacromatafalgar, et que je n'avais aucune idée des erreurs que j'avais mises dans le code.

Je voudrais savoir quelle est donc la cause de l'erreur, et la solution.

Est-ce que je peux aussi diffuser le logiciel sur Internet ? ( une fois le problème résolu )

Encore merci,


----------



## zacromatafalgar (27 Août 2008)

macman31 a dit:


> Merci pour toutes ces réponses, le script se compile bien et fonctionne la première fois ( il me demande bien l'adresse et crée bien le fichier "adresse mail.txt", mais lors de la seconde exécution, au bout d'un moment, il met un message d'erreur (voir image) :
> 
> 
> 
> ...


Je n'arrive pas à reproduire l'erreur, je pense  que c'est une incompatibilité avec Panther, il faudrait que tu testes le script sur Tiger ou Leopard



macman31 a dit:


> Je précise que c'est mon premier applescript, que j'ai procédé "à taton" avec des morceaux de codes trouvés sur le web, et le code de zacromatafalgar, et que je n'avais aucune idée des erreurs que j'avais mises dans le code.


C'est pas mal pour un premier script, va faire un tour sur iScript.fr, tu y trouveras les bases 



macman31 a dit:


> Je voudrais savoir quelle est donc la cause de l'erreur, et la solution.


Désolé mais je ne peux t'apporter de solution 



macman31 a dit:


> Est-ce que je peux aussi diffuser le logiciel sur Internet ? ( une fois le problème résolu )


Oui

Si tu veux rajouter la création automatique du fichier dans le paquet, il faut rajouter :

```
try
		thefile as alias
	on error
		do shell script "touch " & (quoted form of thefile)
	end try
```
 en début de script, après la ligne 
	
	



```
set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
```


----------



## macman31 (27 Août 2008)

Merci pour toute ton aide, zacromatafalgar.
J'ai vu que tu était sous leopard.
Si je trouve l'erreur ( ou toi )  , pourras-tu tester le script ?

Sinon, j'aimerais assez que tu m'explique le fonctionnement de : 

do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom


à quoi servent les guillemets ? la barre verticale devant "mail" ? le choix des variables est important, ou c'est l'ordre ?



Si cela peut t'aider pour résoudre le problème, je précise qu'il crée automatiquement le fichier "adresse mail.txt" s'il n'existe pas, il me demande l'adresse mail, et il envoie bien le rapport.
Par contre, il ne l'envoie pas si on l'exécute sans avoir supprimé "adresse mail.txt". Il affiche le message d'erreur, comme s'il devait demander à chaque fois l'adresse mail. :mouais:

Est-ce un problème de lecture du fichier ?

Merci beaucoup,


----------



## zacromatafalgar (27 Août 2008)

macman31 a dit:


> Si je trouve l'erreur ( ou toi )  , pourras-tu tester le script ?


Oui, il fonctionne déjà bien chez moi&#8230; 



macman31 a dit:


> Sinon, j'aimerais assez que tu m'explique le fonctionnement de :
> 
> ```
> do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
> ...



Les guillemets séparent les parties unix (qui seraient lettre pour lettre dans le terminal) et les parties applescript, dans le terminal les parties applescript seraient en dur. 

La barre verticale ou pipe permet de passer le résultat de la commande echo à la commande mail. 
 Après je ne connais pas trop ce langage&#8230;et si des personnes compétentes remarquent des inexactitudes ou peuvent apporter des précisions, merci à elles&#8230;

Non, le choix du nom des variables importe peu pourvu que ces noms ne comportent ni espace, ni caractère accentué et qu'ils ne débutent pas par un chiffre en revanche l'ordre des variables est très important, supposons que tu inverses messTo et messFrom, le message sera envoyé à l'adresse de l'expéditeur.
Tu peux obtenir des précisions sur les commandes shell utilisées en ouvrant le terminal et tapant man suivi du nom de la commande, par exemple : 
	
	



```
man mail
```



macman31 a dit:


> Si cela peut t'aider pour résoudre le problème, je précise qu'il crée automatiquement le fichier "adresse mail.txt" s'il n'existe pas, il me demande l'adresse mail, et il envoie bien le rapport.
> Par contre, il ne l'envoie pas si on l'exécute sans avoir supprimé "adresse mail.txt". Il affiche le message d'erreur, comme s'il devait demander à chaque fois l'adresse mail. :mouais:
> 
> Est-ce un problème de lecture du fichier ?


Il faudrait remplacer la ligne 
	
	



```
do shell script "touch " & (quoted form of thefile)
```
 par 	
	
	



```
do shell script "touch " & (quoted form of POSIX path of thefile)
```
, ben oui, je l'ai oublié, honte à moi&#8230;

De plus je ne sais si, sous Panther, la ligne 
	
	



```
thefile as alias
```
 est bien reconnue, si la modification au dessus ne fonctionne pas, remplace la par :

```
tell application "Finder"
thefile as alias
end tell
```



Edit : il me semble que la commande "open for access" créée le fichier s'il n'existe pas, on n'aurait dans ce cas pas besoin du bloc 
	
	



```
try
		thefile as alias
	on error
		do shell script "touch " & (quoted form of posix path of thefile)
	end try
```
 
edit 2 : ça marche sous Leopard mais est-ce cas sous Panther ?


----------



## macman31 (27 Août 2008)

J'ai l'erreur !!!!!!
En effet, j'ai exécuter la séquence d'envoi du mail sous Terminal, ( j'ai marqué des trucs bidons )     :

echo essai | mail -s essai monmail@free.fr -f expediteur@free.fr


Le mail s'envoie sans problèmes.

J'ai supprimé "monmail@free.fr", et voila le résultat :

echo essai | mail -s essai -f expediteur@free.fr
*mail: You must specify direct recipients with -s, -c, or -b.
*
Ca ne vous rappelle pas quelque chose ? 

(pour ceux qui n'ont pas suivi, c'est le message d'erreur optenu sous Editeur de script.)

J'en conclus donc que c'est la lecture du fichier qui est en cause. l'applescript ne lirait pas ( ou pas correctement) le fichier avec l'adresse mail, donc le message ne peut être envoyé.
Mais à quel endroit du script ?


Au fait zacromatafalgar, le fichier "adresse mail.txt" se crée automatiquement sans la partie du code que tu m'as demandé d'ajouter.  (avec aussi, mais bon&#8230 donc tu as raison pour "open for access" qui crée le fichier manquant.

Je voudrais donc savoir si possible quel est le problème.

Merci pour vos réponses,

P.S. : à quoi sert :

on writeFile(PathFile, theData)
    set x to open for access file (PathFile as Unicode text) with write permission
    try
        set eof x to 0
        write theData to x
        close access x
    on error
        close access x
    end try
end writeFile


----------



## macman31 (28 Août 2008)

Je ne comprends plus rien&#8230;

J'ai rajouté " display dialog messTo" après " set rapport to do shell script "/usr/sbin/traceroute google.fr" ", donc juste avant l'envoi du message, et dans le dialogue, il m'affiche &#8230;&#8230;&#8230; l'adresse mail du destinataire ! 

Ce n'est donc pas un problème de lecture de fichier, c'est à mon avis un problème du shell d'envoi du message. Pourtant, il devrait l'envoyer, car il y a bien l'adresse mail du destinataire !
On dirait qu'il arrête le shell et essaye d'envoyer le message avant "messTo"&#8230; 

Si vous pouvez m'aider à résoudre cet obscur problème&#8230;

P.S.: Merci à zacromatafalgar pour l'explication&#8230;


----------



## zacromatafalgar (28 Août 2008)

macman31 a dit:


> P.S. : à quoi sert :
> 
> on writeFile(PathFile, theData)
> set x to open for access file (PathFile as Unicode text) with write permission
> ...



Cette routine écrit l'adresse du destinataire dans le fichier et est appelée, en cas d'erreur de la routine readFile, après la saisie de l'adresse.


----------



## zacromatafalgar (28 Août 2008)

macman31 a dit:


> Je ne comprends plus rien
> 
> J'ai rajouté " display dialog messTo" après " set rapport to do shell script "/usr/sbin/traceroute google.fr" ", donc juste avant l'envoi du message, et dans le dialogue, il m'affiche  l'adresse mail du destinataire !
> 
> ...



Je pense à une incompatibilité soit de ta version d'applescript ou bien de Panther

Pourrais-tu poster ton code en entier ou bien me l'envoyer à  monPseudo@gmail.com


----------



## macman31 (1 Septembre 2008)

Bon, pour l'instant, le site web du logiciel est : http://mactrace.webnode.com
Le logiciel n'est pas en téléchargement, mais ca viendra, car j'ai encore un (dernier, je l'espère) problème à résoudre.


----------



## macman31 (9 Septembre 2008)

La suite de la discussion ( nouveau problème ) est là : http://forums.macg.co/developpement-sur-mac/element-de-demarrage-mac-233353.html

Voilà

Merci pour tout ceux qui m'ont aidé,


----------



## macman31 (2 Octobre 2008)

Version bêta 1 en ligne !!! (Pour 10.5)

Bon, disponible à : http://mactrace.webnode.com

Encore merci à tout ceux qui m'ont aidé,


----------



## Didier Guillion (3 Octobre 2008)

Pas mal du tout cette petite appli !

Quelques remarques si tu le permet:

- Certes ,les portables sont les plus facile a voler, mais les ordinateurs de bureau peuvent aussi l'être, l'appli est donc utile pour tous les Macs.

- Quand on bascule d'une session utilisateur à l'autre on recoit un email à chaque fois...

- Comment on desinstalle l'appli ?


Cordialement


----------



## Vivid (3 Octobre 2008)

Bonjour,

juste une question ; la police va ce deplacer pour un portable?  parceque deja quelle se deplace pas quand des types se castagne... si ! pour le portable d'un proche de la cour de Sarko avec en plus la police scientifique. Si c'etait pas reel ce serait amusant


----------



## macman31 (3 Octobre 2008)

Didier Guillion : Merci pour ta réaction ! Pour répondre à tes questions :

- en effet l'application est aussi utilisable sous un mac fixe ( assez utile pendant les vacances !), mais à mon avis, elle est plus adaptée aux macs portables, que l'on peut voler beaucoup plus facilement qu'un mac fixe &#8230;

- L'appli se lance a tous les démarrages et a tous les changements de sessions, car elle s'est ajoutée à : "Préférences système - comptes - démarrage " 

 (passage supprimé à la demande de son auteur)


Vivid : En effet, mais êtant donné que tu as toutes les informations pour localiser le voleur,&#8230;

Enfin, après, je n'ai pas testé, donc je ne peux rien te promettre &#8230; :rateau:

Si quelqu'un est policier, qu'il n'hésite pas à me donner sa version 


Voilà, merci de vos réactions,


----------



## Didier Guillion (3 Octobre 2008)

Merci de ta réponse.

Il ne te reste plus qu'a prendre une photo si la WebCam est active et de l'envoyer en attachement.... 

Cordialement


----------



## macman31 (11 Octobre 2008)

C'est une bonne idée 
Je vais essayer de le faire 

Bon, j'ai fais un Installateur / Désinstallateur pour MacTrace, inclus avec l'image disque ( disponible sur : http://mactrace.webnode.com )

Voilà,


----------



## pascalformac (11 Octobre 2008)

coucou
je poste ici

depuis longtemps j'ai un petit script tout simple qui a une seule fonction
copier le chemin d'un fichier selectionné dans le finder

il marche très bien , là n'est pas le truc

détail :il donne le chemin en anglais
(mon os est à interface langue francaise)

exemple
'/Users/moncompte/Library/Preferences/com.apple.iCal.plist'

moi ca ne me gene pas , ni la majorité de mes correspondants ( en aide amicale)

Par contre comme c'est souvent pour indiquer un emplacement à des nioubes pas familiers du vocabulaire anglais OSX , avec OS en francais 
Par pédagogie, je dois modifier

via un clipboard multiple je remplace  le début par ce qui convient 
( ici Maison/Bibliotheque/)

ou parfois je passe par quicksilver qui donne le chemin en francais (mais c'est plus rapide via le script)


je suis certain que je peux ajouter des modifs de traduction  conditionnelles tenant compte du francais
( du genre if ...replace-overwrite etc)


voire  tant que j'y suis rajouter_ disque dur_/ si le fichier  est à la racine

qu'est ce que dois rajouter?

Merci d'avance

( bien entendu je pourrai si besoin poster le script  actuel  et mettre à dispo le script remodifié)


----------



## ceslinstinct (11 Octobre 2008)

pascalformac a dit:


> coucou
> je poste ici
> 
> depuis longtemps j'ai un petit script tout simple qui a une seule fonction
> ...


Bonsoir

Ton script il est fait pour travailler sur plusieurs ordinateurs, donc il doit savoir le nom du volume qui va utiliser ce script?


```
set x to ((path to system folder) & "Library:") as string
```

Ce code lit le nom du DD sans avoir a lui donner, c'est ce que tu cherche?

PS: pour dans le dossier utilisateur.


```
set x to ((path to "cusr") & "Library:") as string
```

@+


----------



## pascalformac (11 Octobre 2008)

ceslinstinct a dit:


> Bonsoir
> 
> Ton script il est fait pour travailler sur plusieurs ordinateurs, donc il doit savoir le nom du volume qui va utiliser ce script?


c'est tous finders

et je ne m'en sers que sur mon DD interne

( faudra que je teste sur mes DD de sauvegardes)

et que j'en copie colle le code


ce que je voudrais c'est remplacer  dans les résultats

library par bibliotheque
users par utilisateurs etc etc

et si possible sucrer le nom de mon compte à moi pour le remplacer par un phrasé plus pédagogique pour les demandeurs d'aide


rien d'important car de toute facon j'ai les remplacants en presse-papier personalisé

le script actuel

on run
    tell application "Finder" to set theFile to selection
    set thePath to quoted form of POSIX path of (theFile as string)
    set the clipboard to thePath
end run


----------



## ceslinstinct (12 Octobre 2008)

pascalformac a dit:


> c'est tous finders
> ce que je voudrais c'est remplacer  dans les résultats
> 
> library par bibliotheque
> ...


Bonjour 

Pour te donner une idée si les noms a modifier sont pas trop nombreux.


```
tell application "Finder" to set theFile to selection
set thePath to quoted form of POSIX path of (theFile as string)

set chemin to ""

set text item delimiters to "/"

repeat with i from 1 to (count text item of thePath)
	set nom to text item i of thePath
	if nom is "Users" then
		set nom to "Utilisateur"
	else if nom is "Library" then
		set nom to "Bibliothèque"
		-- Nom du dossier icône maison
	else if nom is (system attribute "USER") then
		set nom to "Maison"
	end if
	if i > 1 and nom is "'" then
		set chemin to chemin & nom
	else
		set chemin to chemin & nom & "/"
	end if
end repeat
set text item delimiters to ""

display dialog chemin
```

@+


----------



## pascalformac (12 Octobre 2008)

merci
je vais tester et bien entendu je ferai un bilan


----------



## zacromatafalgar (12 Octobre 2008)

Salut,

Je t'ai fait un script qui devrait te convenir, il suffit de rajouter les dossiers à traduire à la même position dans chacune des listes. Par exemple si tu veux modifier le nom de ta session, si tu met le nom (pascal peut-être) en 8ème position dans la liste des noms anglais, tu devras mettre la traduction (nomSession) en 8ème position également dans la liste folderNamesOk&#8230; 


```
on run
	set folderNames to {"Users", "Library", "Desktop", "Downloads", "Movies", "Music", "Pictures"}
	set folderNamesOk to {"Utilisateurs", "Bibliothèque", "Bureau", "Téléchargements", "Séquences", "Musique", "Images"}
	
	tell application "Finder" to set theFile to selection
	set thePath to POSIX path of (theFile as string)
	repeat with i from 1 to count of items in folderNames
		set theName to item i of folderNames
		if theName is in thePath then
			set thePath to find_replace(thePath, theName, (item i of folderNamesOk))
		end if
	end repeat
	
	set the clipboard to thePath
end run


on find_replace(the_string, old_char, new_char)
	set AppleScript's text item delimiters to old_char
	set the_list to text items of the_string
	set AppleScript's text item delimiters to new_char
	set the_string to the_list as text
	set AppleScript's text item delimiters to ""
	return the_string
end find_replace
```


Edit : je pense à un détail qui peut malgré tout avoir une certaine importance, dans le cas où ton chemin comporterait plusieurs occurrences du mot recherché, par exemple un dossier intitulé _Adobe users_, _users_ serait également remplacé par utilisateurs, or ce n'est pas le but recherché. Pour remédier à ce défaut, il suffit d'encadrer chaque éléments des listes par des slash ("/Library/" au lieu de "Library"). Veiller à modifier aussi la liste de traductions sans quoi le chemin ne comporterait plus tous les slashes&#8230;


----------



## pascalformac (12 Octobre 2008)

mais c'est une avalanche

je testerai aussi

merci

( en passant 
en premier lecture , il me semble que le script ceslinctinct  ne demande pas la copie vers presse papier qu'il remplace par display)


----------



## ceslinstinct (12 Octobre 2008)

pascalformac a dit:


> mais c'est une avalanche
> 
> je testerai aussi
> 
> ...


c'était un code d'explication, pour te donner une idée pour ton code.

Je passe toujours par un display dialog lors des tests ça évite de faire un coller pour voir le résultat.

Je te conseille d'utiliser le code de *zacromatafalgar* qui est beaucoup plus précise que le mien car ils permet une multitude de choix sans ajouter de lignes mais simplement des noms de dossiers.

J'ai simplement voulue te donner une réponse rapide pour te dire que ta recherche est intéressante.

Cordialement.

@+


----------



## ceslinstinct (12 Octobre 2008)

zacromatafalgar a dit:


> Salut,
> 
> Je t'ai fait un script qui devrait te convenir, il suffit de rajouter les dossiers à traduire à la même position dans chacune des listes. Par exemple si tu veux modifier le nom de ta session, si tu met le nom (pascal peut-être) en 8ème position dans la liste des noms anglais, tu devras mettre la traduction (nomSession) en 8ème position également dans la liste folderNamesOk
> 
> ...


Bonjour

Il manque que le nom du dossier Home soit caché, ce qu'il recherche aussi.

@+


----------



## zacromatafalgar (12 Octobre 2008)

ceslinstinct a dit:


> Bonjour
> 
> Il manque que le nom du dossier Home soit caché, ce qu'il recherche aussi.
> 
> @+



Je lui indique la manière de procéder en début de post, ne connaissant pas le nom de sa session je ne pouvais le rajouter à la liste


----------



## ceslinstinct (12 Octobre 2008)

zacromatafalgar a dit:


> Je lui indique la manière de procéder en début de post, ne connaissant pas le nom de sa session je ne pouvais le rajouter à la liste


Je suis un passionné de code et non de texte, donc j'ai commencé par tester le code.

Je te présente mes excuses et ne croit pas que j'avais des doutes sur la qualité de ton script.

@+


----------



## zacromatafalgar (12 Octobre 2008)

ceslinstinct a dit:


> Je suis un passionné de code et non de texte, donc j'ai commencé par tester le code.
> 
> Je te présente mes excuses et ne croit pas que j'avais des doutes sur la qualité de ton script.
> 
> @+



Y'a pas de problème 

Tu peux tout de même avoir des doutes sur sa qualité, je suis très loin d'être un pro, je ne suis pas *JackJr300*


----------



## ceslinstinct (12 Octobre 2008)

zacromatafalgar a dit:


> Y'a pas de problème
> 
> Tu peux tout de même avoir des doutes sur sa qualité, je suis très loin d'être un pro, je ne suis pas *JackJr300*


Ote moi d'un doute.

Il cherche si j'ai bien compris que le nom de ça petite maison ne soit pas pris en compte.

Cet ajout à ton script est-il correct?


```
set nom_Session to (system attribute "USER")
	set folderNames to {"Users", "Library", "Desktop", "Downloads", "Movies", "Music", "Pictures", nom_Session}
	set folderNamesOk to {"Utilisateurs", "Bibliothèque", "Bureau", "Téléchargements", "Séquences", "Musique", "Images", "Maison"}
```

Maison étant remplacé par le mot de votre choix.

La première ligne pour être utilisable sur plusieurs sessions.

*JackJr300* je suis par apport a lui en taille, juste a la hauteur de la plante de ces pieds pour mes connaissances sur AppleScript.

@+


----------



## pascalformac (12 Octobre 2008)

merci à vous 2

j'ferai ma tambouille editor et je vous tiens au courant


ps il fait quelle taille en chaussures le JackJr300?
du 54?


----------



## zacromatafalgar (12 Octobre 2008)

ceslinstinct a dit:


> Ote moi d'un doute.
> 
> Il cherche si j'ai bien compris que le nom de ça petite maison ne soit pas pris en compte.
> 
> ...


Si on modifie comme ci-dessus, le code est effectivement valable quel que soit la session ou le mac

@*Pascalformac*, 54 ? Je crois que tu es bien au-dessous de la réalité
J'avais même fait un gif rien que pour lui


----------



## ceslinstinct (12 Octobre 2008)

pascalformac a dit:


> merci à vous 2
> 
> j'ferai ma tambouille editor et je vous tiens au courant
> 
> ...


Si tu veut bien utiliser AppleScript, il faut fréquenter cette personne.

C'est très souvent qu'il a des réponses simplement pour lui dire MERCI.

Il y a même un fan club qui s'était créé a une époque.

La preuve, même *zacromatafalgar* qui a créé une pancarte de remerciement.

J'ai eu besoin de ces services sur certains code du terminal à ajouter a mon code, et aucune modifications ,c'est du parfait.

@+


----------



## BS0D (12 Octobre 2008)

salut à tous, 

je voulais justement créer une application du type (voir ce sujet: http://forums.macg.co/developpement-sur-mac/aide-a-la-programmation-237566.html) !

Est-ce que je pourrais réutiliser ce code à ma sauce, pour une utilisation personnelle bien sûr? 

Pourriez-vous faire un rappel du code complet qui marche, parce que là je suis un peu perdu je dois dire... chez moi cette portion 

```
property messFrom : "xxx @ xmail.com"
property messTo : missing value
property theDate : missing value
property messSub : missing value
property rapport : missing value


on run
    set thefile to (path to me as text) & "Contents:Resources:adresse mail.txt"
    try
        thefile as alias
    on error
        do shell script "touch " & (quoted form of thefile)
    end try
    set theDate to (current date)
    set messSub to ("Rapport Traceroute du : " & theDate)
    set messTo to readFile(thefile)
    set rapport to do shell script "/usr/sbin/traceroute google.fr"
    
    
    do shell script "echo " & (quoted form of rapport) & " | mail -s " & (quoted form of messSub) & " " & messTo & " -f " & messFrom
    
end run

on readFile(PathFile)
    try
        set foo to (open for access (PathFile))
        set theAddress to (read foo)
        close access foo
    on error
        close access foo
        set theAddress to text returned of (display dialog "À quelle adresse souhaitez-vous envoyer les rapports ?" default answer "theAddress@gmail.com" buttons "OK" default button 1)
        writeFile(PathFile, theAddress)
    end try
    return theAddress
end readFile

on writeFile(PathFile, theData)
    set x to open for access file (PathFile as Unicode text) with write permission
    try
        set eof x to 0
        write theData to x
        close access x
    on error
        close access x
    end try
end writeFile
```
me dit que la variable *foo* n'est pas définie... 

Merci d'avance,
BS0D


----------



## macman31 (13 Octobre 2008)

Bonjour BS0D,

Je n'ai pas le code final sous la main, mais je vais essayer de te l'envoyer ce soir.

Il a bien évolué, depuis le code que tu as posté.

Encore merci de l'intéret que tu porte au logiciel,


----------



## BS0D (13 Octobre 2008)

salut à tous, 

Merci Macman31 pour ta réponse 

voilà, j'expose mon problème parce que j'ai aucune réponse et je suis en train de me prendre le chou sur un truc tout bete, mais pour lequel je trouve ni exemple, ni solution.

Je cherche à compter les occurences d'un caractere (défini par l'utilisateur à l'ouverture, par ex: "a") dans un fichier texte. 

j'arrive donc bien à lancer l'ouverture du fichier, à ouvrir un prompt dialogbox pour rentrer le caractere dont on veut trouver le nombre d'occurences, mais pour la suite...

Voici mon code (soyez pas surpris si ça n'a pas de sens, je le triture depuis hier sans relache et je ne sais plus par où m'y prendre!): 


```
set mon_Fichier to choose file with prompt "Choisissez un document TEXT" default location ((path to desktop folder) as alias) of type {"TEXT", "EPSF", "XLS8", "RTF"} with multiple selections allowed and invisibles

[COLOR=Red]read mon_Fichier
set le_caractere to {e:"e", a:"a", h:"h"}
set la_reponse to ""

on nombre_caractere(le_caractere)
    set nb_caractere to 0
    repeat until last item of document ((count) & le_caractere)
    end repeat
end nombre_caractere[/COLOR]

try
    set la_reponse to display dialog "Quel est le caractère recherché?" default answer "a"
    display dialog "Il y a \"" & text returned of la_reponse & "\" occurences dans votre texte" buttons "OK" default button "OK"
on error
    display dialog "Opération annulée..." buttons "OK" default button "OK"
end try
```
La partie en rouge est bien sûr du n'importe quoi et pas fini ni retravaillé. J'ai simplement essayé de créer une fonction pour calculer les occurences de la lettre rentrée par l'utilisateur mais je bloque complètement. 
Je dois dire aussi que le code que j'avais hier soir avait beaucoup plus de sens et que j'étais 10 fois plus proche du but que là !!

merci d'avance...


PS: je m'aide de ça pour la lecture du fichier, dans mon code rien n'apparait mais j'en tiens compte


----------



## BS0D (13 Octobre 2008)

OK, bon, j'ai déjà trouvé une bonne façon de m'assurer que mon fichier est lu: 


```
set mon_Fichier to choose file with prompt "Choisissez un document TEXT" default location ((path to desktop folder) as alias) of type {"TEXT", "EPSF", "XLS8", "RTF"} without multiple selections allowed and invisibles
    
    open for access mon_Fichier with write permission
    set contenu_lu to read mon_Fichier
    close access mon_Fichier
```
Ça au moins je suis sur que ça marche... on s'en apercoit si on rajoute sous ce code " display dialog contenu_lu "

mais au niveau de l'isolation d'un caractere en particulier et du comptage d'occurences de celui-ci, je sais pas trop comment m'y prendre


----------



## zacromatafalgar (13 Octobre 2008)

Salut,

Je t'ai fait le script suivant qui fonctionne :

```
on run
	set mon_Fichier to choose file with prompt "Choisissez un document TEXT"
	set theText to readFile(mon_Fichier)
	set theChar to text returned of (display dialog "Quel est le caractère recherché?" default answer "a")
	set occNbr to findLr(theText, theChar)
	
	display dialog "occNbr : " & occNbr
	
end run

on readFile(PathFile)
	try
		set foo to (open for access PathFile)
		set theData to read foo
		close access foo
	on error
		close access foo
	end try
	return theData
end readFile

on findLr(the_string, charTF)
	set AppleScript's text item delimiters to charTF
	set the_list to text items of the_string
	set charNbr to ((count of the_list) - 1)
	set AppleScript's text item delimiters to ""
	return charNbr
end findLr
```


----------



## BS0D (13 Octobre 2008)

Mwaaaah, tu me dégoutes !! 

C'est trop facile pour toi 


Merci beaucoup en tous cas, je vais essayer de déméler et d'étudier pour voir ce que je faisais de travers...


----------



## zacromatafalgar (13 Octobre 2008)

BS0D a dit:


> Mwaaaah, tu me dégoutes !!



Excuse-moi


----------



## BS0D (13 Octobre 2008)

zacromatafalgar a dit:


> Excuse-moi



Nan je plaisante. C'est juste que pour toi c'est facile, moi j'aurais préféré que tu me pointes dans la bonne direction au lieu de me cracher le résultat, car j'ai rien appris pour le coup. 
j'ai tellement peu de logique pour la programmation que j'essaie de m'entrainer sur des petits trucs dans le genre, masi c'est assez peu concluant ... :rose:


----------



## zacromatafalgar (13 Octobre 2008)

Oui, j'avais bien compris que tu plaisantais, j'ai mis quelques commentaires dans le code pour me faire pardonner 

```
on run
	set mon_Fichier to choose file with prompt "Choisissez un document TEXT"
	set theText to readFile(mon_Fichier) --on fait appel à la fonction readFile pour lire le fichier
	set theChar to text returned of (display dialog "Quel est le caractère recherché?" default answer "a")
	set occNbr to findLr(theText, theChar) --on fait appel à la fonction findLr pour compter le nombre de caractères ou de mot recherché suivant le texte retourné à la ligne précédente
	
	display dialog "occNbr : " & occNbr
	
end run

on readFile(PathFile) --fonction de lecture
	try --bloc "try - on error - end try" permet de lancer une action sans faire planter le script en cas d'erreur
		set foo to (open for access PathFile) --ouverture du fichier
		set theData to (read foo) --lecture
		close access foo --fermeture
	on error --en cas d'erreur
		close access foo --on referme le fichier
	end try
	return theData --on retourne le texte dans une variable afin de le remettre à la fontion suivante dans le corps du script
end readFile

on findLr(the_string, charTF)
	set AppleScript's text item delimiters to charTF --on utilise le caractère recherché pour séparé les bouts de texte
	set the_list to text items of the_string --on met chaque morceau de texte dans une liste
	set charNbr to ((count of the_list) - 1) --on compte le nombre de morceaux, nombre auquel on soustrait 1*
	set AppleScript's text item delimiters to "" --on remet le séparateur par défaut
	return charNbr --on retourne le résultat afin de l'afficher
end findLr

(*
si on recherche le nombre d'occurences du chiffre 8 dans le string suivant : 7786538421
on constate que le 8 apparaît 2 fois or nous avons compté les morceaux séparés par des 8 qui sont au nombre de 3, il faut donc soustraire 1
*)
```


----------



## two (19 Octobre 2008)

zacromatafalgar a dit:


> chouette code]


Le code est vraiment intéressant... par contre surprise... je l'ai testé sur du TXT et sur du RTF avec le même bout de texte : là ou en txt il me répond 6 (bonne réponse) en RTF il me répond 22... 

Pourquoi? 

PS : je ne cherche pas spécialement a avoir ce script opérationnel sur du rtf... juste à comprendre... 
Quels sont le formats de texte sur lesquels on peut s'attendre à le voir fonctionner correctement...


----------



## zacromatafalgar (19 Octobre 2008)

Salut,

Dans un fichier rtf, il y a les metadatas qui comprennent la couleur du texte, la police utilisée, les marges du documents et quelques autres choses. Pour le voir exécute le code suivant en choisissant un fichier rtf vide :

```
on run
	set theFile to choose file
	set theText to readFile(theFile)
	log theText
end run

on readFile(PathFile)
	try
		set x to open for access PathFile
		set theData to read x
		close access x
	on error
		close access x
	end try
	return theData
end readFile
```
Choisi l'onglet _Hist. des événements_ au bas de la fenêtre de l'éditeur de script pour voir le texte&#8230; 

Ce script ne fonctionnera donc que sur des documents contenant du texte brut.


----------



## ceslinstinct (19 Octobre 2008)

two a dit:


> Le code est vraiment intéressant... par contre surprise... je l'ai testé sur du TXT et sur du RTF avec le même bout de texte : là ou en txt il me répond 6 (bonne réponse) en RTF il me répond 22...
> 
> Pourquoi?
> 
> ...


Bonjour

Le fichier RTF avec TextEdit est fait pour être utilisé en bundle.

Si une image avec le texte = bundle, texte seul fichiers.

Fait un contrôle de ce qui se trouve dans la variable *theData*

*Grillé*

@+


----------



## macman31 (19 Octobre 2008)

Bonjour,

Texte en *.txt, ouvert avec TextEdit : *lol*

Le même texte, mais ouvert avec la commande terminal "pico /pathtotext/" :

*lol*


Jusque là, pas de soucis.

Mais maintenant :

Texte en *.rtf, ouvert avec TextEdit : *lol*

Le même texte, mais ouvert avec la commande terminal "pico /pathtotext/" :

*{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;}
\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx62$

\f0\fs24 \cf0 lol}
*

Voilà la différence 

Après, je ne sais pas avec quels formats ça marche


----------



## ceslinstinct (19 Octobre 2008)

Bonsoir

J'ai testé le code de *zacromatafalgar* qui marche parfaitement pour des fichiers en mode text.

En RTF il marche aussi (avec quelques modifications) mais je lui fait croire que c'est un fichier text.

Ou alors faire du RTF --> text.

Souvent on nous trompe, alors pourquoi pas tromper un fichier (en plus il se rebelle pas donc aucun risque pour notre personne)

Bon code, félicitations.  

@+


----------

