Transformer un texte en HTML en utilisation une fonction rechercher/remplacer et une liste. Imaginons qu'on veuille transformer un texte contenant des caractères spéciaux, c'est-à-dire principalement des accents, en un texte équivalent avec les équivalents HTML. Pour faire cela, rien de plus simple, il suffit d'utiliser un logiciel comme GoLive ou Dreamweaver ou encore la fonction "translate" de BBEdit ou alors d'utiliser ce script.
setfinal_stringto text returned of(display dialog "Donnez un texte avec des accents :" default answer "Où ça va ? à l'aéroport?")
considering case
repeat withmfrom1to(length ofliste_des_caracteres_speciaux)by2 set text item delimiters to(item mofliste_des_caracteres_speciaux) setlist_of_new_wordsto text items offinal_string if((length oflist_of_new_words)>1)then setfinal_stringto1st item oflist_of_new_words repeat withifrom2to((length oflist_of_new_words)) setfinal_stringtofinal_string&(item (m+1)ofliste_des_caracteres_speciaux)& item ioflist_of_new_words end repeat
end if end repeat
end considering
display dialog "En version HTML : "& return &final_string
Explications : On a établi une liste des caractères à rechercher et à remplacer. Chaque caractère à échanger et son équivalent se trouve l'un à coôté de l'autre dans la liste. Il suffit donc de tester un élement sur deux et de le remplacer par le suivant. C'est pourquoi on effectue une boucle de 1 à "length of liste_des_caracteres_speciaux" (la nombre d'élément dans la liste) avec un pas d'écrément de "by 2". Lorqu'on a découvert que l'élément recherché se trouvait dans la liste, on le substitue par "item (m + 1) of liste_des_caracteres_speciaux".
Astuce & application : on peut ajouter facilement de nouveaux caractères à remplacer.
cette fonction n'est aussi rapide que la fonction "translate" de BBEdit mais elle évite de lancer BBEdit ou d'avoir BBEdit ce qui est préféable si on veut faire des scripts utilisables par tous.