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.