{"id":216,"date":"2012-08-18T08:53:59","date_gmt":"2012-08-18T07:53:59","guid":{"rendered":"http:\/\/www.tyflosaccessiblesoftware.com\/programaraciegas\/?p=216"},"modified":"2012-08-18T08:53:59","modified_gmt":"2012-08-18T07:53:59","slug":"variables-en-applescript","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=216","title":{"rendered":"Variables en AppleScript"},"content":{"rendered":"<p>AppleScript, al igual que en otros lenguajes de programaci\u00f3n, nos permite utilizar variables para almacenar y manipular informaci\u00f3n.<br \/>\nSu uso es muy sencillo. Para declarar y asignar un valor a una variable debemos seguir la siguiente sintaxis:<\/p>\n<p><strong>set<\/strong> nombreDeVariable <strong>to<\/strong> valorParaLaVariable<\/p>\n<p>Veamos un ejemplo simple:<\/p>\n<p><code><br \/>\non run<br \/>\n\tset mensaje to \"Hola mundo!\"<br \/>\nsay mensaje<br \/>\nend run<br \/>\n<\/code><\/p>\n<p>Para reasignar el valor de una variable se sigue la misma sintaxis. En la asignaci\u00f3n podemos realizar encadenamiento de cadenas de texto, operaciones matem\u00e1ticas, etc.<\/p>\n<p>Veamos un ejemplo en la que asignamos el valor 1 a la variable valor, pronunciamos su valor, reasignamos el valor de la variable al valor que ten\u00eda antes m\u00e1s una unidad y volvemos a pronunciarlo:<\/p>\n<p><code><br \/>\non run<br \/>\n\tset valor to 1<br \/>\n\tsay valor<br \/>\n\tset valor to valor + 1<br \/>\n\tsay valor<br \/>\nend run<br \/>\n<\/code><\/p>\n<h2>Problemas de formatos y tipos<\/h2>\n<p>Las variables pertenecen a distintos formatos (texto, n\u00fameros enteros, n\u00fameros decimales, estructuras de datos, etc) y formatos (UTF-8, UTF-16, Unicode, etc). Si intentamos manipular variables entre si con tipos o formatos distintos podemos obtener un error. Por ejemplo, la funci\u00f3n <strong>say<\/strong>, que pronuncia un texto, espera que le pasemos una variable de texto o de n\u00fameros enteros.<\/p>\n<p>Veamos un ejemplo en el que intentamos hacer un script para que nos pronuncie la fecha de hoy:<\/p>\n<p><code><br \/>\non run<br \/>\n\tset fecha to current date<br \/>\n\tsay fecha<br \/>\nend run<br \/>\n<\/code><\/p>\n<p>Si intentamos ejecutarlo obtendremos el siguiente mensaje de error: <em>No es posible convertir date \u00abs\u00e1bado 18 de agosto de 2012 09:44:04&#8243; en tipo \u00abclass utf8\u00bb.<\/em><\/p>\n<p>Para solucionar este problema deberemos convertir el valor de fecha, que est\u00e1 en el formato de fecha del sistema, a un valor de cadena de texto.<\/p>\n<p>Para convertir el valor de una variable a otro formato debemos realizar una conversi\u00f3n. La conversi\u00f3n en appleScript sigue la siguiente sintaxis:<\/p>\n<p><em>(<\/em> variable <strong>as<\/strong> tipoAConvertir <em>)<\/em><\/p>\n<p>Necesitamos convertir el tipo fecha de la variable fecha a un tipo de cadena de texto. El ejemplo quedar\u00eda as\u00ed:<\/p>\n<p><code><br \/>\non run<br \/>\n\tset fecha to current date<br \/>\n\tset fechaEnTexto to (fecha as text)<br \/>\n\tsay fechaEnTexto<br \/>\nend run<br \/>\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>AppleScript, al igual que en otros lenguajes de programaci\u00f3n, nos permite utilizar variables para almacenar y manipular informaci\u00f3n. Su uso es muy sencillo. Para declarar y asignar un valor a una variable debemos seguir la siguiente sintaxis: set nombreDeVariable to valorParaLaVariable Veamos un ejemplo simple: on run set mensaje to \u00abHola mundo!\u00bb say mensaje end &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=216\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abVariables en AppleScript\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80],"tags":[83,84,87],"class_list":["post-216","post","type-post","status-publish","format-standard","hentry","category-applescript","tag-applescript-2","tag-curso","tag-programacion-2"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=216"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/216\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}