# Applescript : parser le contenu d'un mail ?



## alexh (4 Mars 2005)

Bonjour,

j'aimerais savoir deux choses : 

1 / Existe-t-il des codes de parsers écrits en applescript et réutilisables ? Autant éviter de réinvter la roue si elle a déjà été écrite ...

2/ Comment exporter le contenu d'un message (intercepté via une règle de Mail) dans un buffer (enfin la structure adéquate) de texte (pour le parser ensuite) ?

Si quelqu'un pouvait m'aider, ça serait cool, j'ai vraiment du mal avec Applescript ... :mouais:


----------



## p4bl0 (6 Mars 2005)

Il parlait de ça dans un AVosMAC* assez récent (3/4 mois) va demander sur leur forum, je les ai pas sous la main 

*c'est un magazine mac mais c'est pas ça que je voulais dire, c'est ça:
le script qu'ils proposent, c'est un script ou tu glisse un fichier dessus et il t'envoi le fichier a l'adresse indiquer dans le script (il me semble).


----------



## alexh (6 Mars 2005)

on s'est mal compris, c'est pas ça que je voulais faire

en fait je veux parcourir un source de mail html pour en extraire des infos pertinentes

j'ai pas mal progressé en Ascript en deux jours, j'aurai bientôt fini une première version, mais ce que c'est lennnnnnnttt. En fait le vrai problème de ce langage, c'est la docu ...  :hein: 

je me demande s'il n'y a pas moyen d'appeler un script perl depuis le script Apple ...


----------



## Didier Guillion (7 Mars 2005)

alexh a dit:
			
		

> on s'est mal compris, c'est pas ça que je voulais faire
> 
> en fait je veux parcourir un source de mail html pour en extraire des infos pertinentes
> 
> ...



A priori je ne voit pas ce qui t'empeche via applescript d'ecrire:
do shell script "perl mycommand.pl"

Le probleme est plus de recuperer les parametres.

Tu devrait pouvoir faire :
set theResult to do shell script "perl mycommand.pl"

Ou, sinon, ecrire un fichier texte resultat avec ton Perl et le lire en AppleScript.

Sinon, je te rejoint sur tes critiques sur AppleScript c'est remarquablement mal foutu.

Je me suis mis au perl il y a à peut pres un mois, en trois jours j'était à l'aise.
En AppleScript, je pédale dans la semoule depuis deux ans dessus. Les langages qui se veulent trop intelligents, produisent souvent un résultat contraire. 

Cordialement


----------



## alexh (7 Mars 2005)

c'est la solution que j'envisageais

je vais essayer le passage en argument des résultats du perl

ça fait un peu pauvre à côté du piping si génial d'unix mais bon  :rateau: 

sinon, c'est vrai qu'AS a des défauts, mais c'est essentiellement : 
- la doc TOUTE POURRIE (encore que je commence à réussir à utiliser le Guide officiel d'Apple ; par contre pour les dictionnaires c'est pas gagné)
- la syntaxe "real language like" qui donne en effet un confort de lectures des codes, mais qui rend l'écriture assez tordue
- le grand nombre de façons différentes de faire la même chose
- la lenteur (c'est ignoblement lent ; mon parseur tout en AS met plusieurs minutes à parcourir un pauvre mail en html de 28ko, ce qui prendra surement moins de 3s en perl ...)

mais malgré ça, l'interfaçage avec l'OS est très sympa


----------



## Didier Guillion (8 Mars 2005)

alexh a dit:
			
		

> c'est la solution que j'envisageais
> 
> je vais essayer le passage en argument des résultats du perl
> 
> ...




Tu lance le script depuis l'editeur de script ou en version compilée ?

Cordialement


----------



## alexh (13 Mars 2005)

J'ai comparé les deux par curiosité et, surprise, les temps sont identiques ....


----------



## Didier Guillion (13 Mars 2005)

alexh a dit:
			
		

> J'ai comparé les deux par curiosité et, surprise, les temps sont identiques ....



Si tu extrait des textes, verifie le type des données.
D'apres ce que j'ai vu si le type est unicode text, c'est plus lent que si c'est le type string.
Dans le doute fait:

set monText to monText as string



Cordialement


----------



## alexh (16 Mars 2005)

Dans le doute je vais éviter de faire les trucs un peu exigeants en calcul en applescript  :mouais: 

Le pire c'est que même VBA (qui n'est pourtant pas un modèle de vélocité) m'a fait aujourd'hui un parsing d'un fichier de plusieurs dizaines de méga octets en à peine 15 secondes (et encore j'ai codé le parsing bien salement)

je vais finalement adopter un passage par un outil unix (ce qui n'est in fine pas plus mal)


----------



## FredoMkb (22 Mars 2005)

Bonjour à tous 

Heu, juste une petite question, histoire de comprendre ce que tu essais de faire, ça veut dire quoi "parser" ?

Comment t'y prends-tu ?

Merci


----------



## FredoMkb (24 Mars 2005)

FredoMkb a dit:
			
		

> ... ça veut dire quoi "parser" ?



Heu... personne pour me donner un début de réponse, ou une quelconque piste ?

Merci


----------



## Didier Guillion (24 Mars 2005)

"Parser" cela veut dire lire les données d'un fichier et reconnaitre les differents champs de données et les extraire.

Par exemple, dans le cas d'un email, extraire nom de l'expediteur, sujet, corps du message, etc.

Cordialement


----------



## FredoMkb (24 Mars 2005)

Didier Guillion a dit:
			
		

> "Parser" cela veut dire lire les données d'un fichier et reconnaitre les differents champs de données et les extraire.
> 
> Par exemple, dans le cas d'un email, extraire nom de l'expediteur, sujet, corps du message, etc.


Ha Ok... ça veut dire ça... en somme, il s'agit de faire un "découpage" logique d'un contenu selon le rôle, ou l'importence, de chaque partie quil le compose, c'est ça ?

Bon, c'est plus claire maintenant, je me faisais des idées plus tordues... Merci Didier


----------

