Etiquetas

,

En la LSPM, los listeros Ana y Ramón (y Pau) preguntaban lo siguiente:

«Office 2008 no permite ejecutar las macros de la versión 2004 y necesitamos ejecutar una transformación de datos que realizamos cada tarde. ¿Podría hacerse la siguiente secuencia en Automator?

Abrir Word

Pegar el portapales en texto sin formato

Buscar y reemplazar todos las comas (,) por puntos (.)

Buscar y reemplazar todas las tabulaciones (^t) por comas (,)»

Juan de Dios Santander y Rafa Espada salieron en apoyo de los «analistos» de bolsa Ana y Ramón:
El primero sugería utilizar AppleScript para Automator-ear la ejecución de ese AppleScript en una acción, ya que parecían tareas razonables. O sugería utilizar
«la línea de comandos, con el comando pbpaste, y el comando:
open -a «Microsoft Word»; pbpaste | tr , . | tr \t , | pbcopy ; open -a «Microsoft Word»; osascript -e «tell app «Microsoft Word» to set content of the text object of the first document of the first window to the clipboard»
Con TextEdit:
tr , . | tr \t , | pbcopy; open -a «TextEdit» ; osascript -e «tell application «TextEdit» to set the text of the document of the first window to the clipboard»
Y eso lo puedes meter en una acción «Ejecutar el script Shell de Automator»»
Rafa Espada decía:
«Para estas cosas no hace falta utilizar office… AppleScript es la bomba…
Llevas un text al portapapeles… ejecutas el script… y te modifica el texto del portapapeles según quieres y lo vuelve a dejar en el portapapeles… 
Copias esto en el Editor de AppleScript y lo guardas como aplicación…
——————————–

— se pone el contanido del portapapeles en una variable
set entrada to (the clipboard as text)
— se pasa todo el texto por una función (textonuevo) que cambiará los caracteres…
set salida to textonuevo(entrada)
— el resultado de la función… se vuelve a dejar en el portapapeles…
set the clipboard to salida

on textonuevo(this_text)
set the comparison_string to “,” & (ASCII character 9)
set the source_string to “.,”
set the new_text to “”
repeat with thisChar in this_text
set x to the offset of thisChar in the comparison_string
if x is not 0 then
set the new_text to (the new_text & character x of the source_string) as string
else
set the new_text to (the new_text & thisChar) as string
end if
end repeat
return the new_text
end textonuevo

Copias esto en el Editor de AppleScript y lo guardas como aplicación…»
Por supuesto has de modificar lo que son las variables… En fin, de lujo, pero yo no tengo esta necesidad y (aún) no lo he probado.