Gonduana

Contenidos para traductores

  • Blog
  • Empieza por aquí
    • Encuesta: coger
    • Encuesta: ratón o mouse
    • Artículos más leídos
    • Vídeos más vistos
    • Gonduana en las redes sociales
    • ¿Quieres saber más sobre mí?
  • Recursos
    • Software para traductores
    • Hardware para traductores
    • Internet para traductores
    • WordPress para traductores
  • Sobre mí
  • Contacto

Cómo contar caracteres con AutoHotkey

Publicado el 20/septiembre/2017 por Jesús Prieto

contar caracteres con AutoHotkey

Ya vimos en este artículo cómo tener el recuento de caracteres en las aplicaciones de Word, Excel y Trados Studio. Ahora te daré una forma rápida de contar caracteres: ¡con AutoHotkey! Además, te servirá para cualquier aplicación, incluidas las tres aplicaciones de antes.

Índice

  • 1.ª Macro para contar caracteres con AutoHotkey
  • Explicación de la 1.ª macro
  • Unas palabras antes de la 2.ª macro
  • 2.ª macro para contar caracteres con AutoHotkey
  • Explicación de la 2.ª macro
  • ¿Cambiarías algo de la macro?
  • Conclusiones

1.ª Macro para contar caracteres con AutoHotkey

Nos metemos ya de lleno en crear una macro de AutoHotkey para poder contar caracteres del texto seleccionado, así nos servirá para los dos casos prácticos de antes.

La macro de AutoHotkey que uso para conseguir el número de caracteres es la siguiente:

; -----------------------------------------------------------------
; 1.ª macro para contar caracteres en AutoHotkey (con/sin espacios)
; www.gonduana.com/contar-caracteres-con-autohotkey
; -----------------------------------------------------------------
; WIN + ALT + R
retorno := "`r`n"
#!r::		
	Clipboard=
	SendInput, ^c
	ClipWait, 0

	cadena := Clipboard
	cadena := StrReplace(cadena, retorno, "")
	cadena := StrReplace(cadena, A_Tab, A_SPACE)
	caracteres := StrLen(cadena)

	StrReplace(cadena, A_SPACE,, espacios)
	caracteresSinEspacios := caracteres - espacios
	
	MsgBox 0, Recuento de caracteres, %caracteresSinEspacios% caracteres SIN espacios %retorno%%caracteres% caracteres CON espacios, 6
return

Te puedes descargar la macro desde aquí:

Descargar 1.ª macro para contar caracteres con AutoHotkey

Explicación de la 1.ª macro

Antes de ejecutar la macro, selecciona el texto del que quieres conocer el número de caracteres y pulsa la combinación de teclas WINDOWS + ALT + R. Por supuesto, si no te gusta este atajo, puedes cambiarlo.

Una vez ejecutada la macro, se mostrará enseguida el siguiente cuadro de diálogo:

contar caracteres con AutoHotkey

Veamos poco a poco la macro, por si quieres modificarla y dejarla a tu gusto:

En la línea 6 se define una variable retorno que es un retorno de línea (`n) más un retorno de carro (`r). Esta variable la usaremos más adelante. Paciencia, hermano…

Las líneas 8 a 10 copian el texto seleccionado en el Portapapeles de Windows.

La línea 12 pasa el contenido del Portapapeles a una variable llamada cadena, que será la que procesaremos para encontrar el número de caracteres.

La línea 13 borra los retornos. Para ello se emplea la función StrReplace, que sustituye la variable cadena por el tercer parámetro, una cadena vacía (""), es decir, se borra cada retorno del texto seleccionado. La cadena producto de las sustituciones de los retornos existentes se llama también cadena. Podríamos usar otro nombre, pero prefiero mantener el mismo. Esta línea está solo para igualar el número de caracteres que nos da la macro con los recuentos de Word. En la 2.ª versión de la macro te doy otra posibilidad.

Seguimos con la línea 14, en la que se reemplaza cada tabulación por un espacio. Así es como trata Word a las tabulaciones, lo cual me parece correcto. Como la línea anterior, también se emplea la función StrReplace, pero esta vez se busca una variable integrada en AutoHotkey, que es A_Tab y sustituye cada tabulación por un espacio (otra variable integrada, A_SPACE).  La cadena producto de las sustituciones de las tabulaciones se llama también cadena.

La línea 15 emplea la función StrLen para contar los caracteres de la variable cadena y guarda en la variable caracteres el número de caracteres.

La línea 17 cuenta el número de espacios en el texto seleccionado. Para ello vuelve a emplear  la función StrReplace para borrar cada espacio y guardar en la variable espacios el número de sustituciones realizadas. Como ya no necesitamos cambiar la variable cadena, descartamos la variable de salida sin los espacios.

La línea 18 es una resta: el número de caracteres sin espacios (variable caracteresSinEspacios) es igual al número de caracteres con espacios (variable caracteres) menos el número de caracteres encontrados en la anterior línea (variable espacios).

La última línea simplemente muestra en pantalla dos valores:

  • el número de caracteres con espacios
  • el número de caracteres sin espacios

contar caracteres con AutoHotkey

El último parámetro de la función MsgBox es el número de segundos que la macro espera a que pulses el botón Aceptar para cerrar el cuadro de diálogo. Si transcurren esos segundos sin cerrarlo manualmente, entonces la macro cierra por ti el cuadro de diálogo. Para mí, 6 segundos es un tiempo suficiente; pero si necesitas más tiempo, aumenta ese valor a 10 o a 15, a tu gusto o borra ese último parámetro.

Unas palabras antes de la 2.ª macro

Como ya comenté, la línea 13 de la anterior macro borra los retornos simplemente para tratarlos igual que Word y, por tanto, para igualar el recuento de caracteres de Word.

Ahora bien, me parece más lógico convertir los retornos en espacios para así contarlos como espacios. De esta forma, el recuento diferirá del de Word, pero se asemejará al recuento de Excel o al que te da Twitter con su famosa limitación de caracteres por tuit.

De todas formas, ten en cuenta:

  1. que cada retorno son en realidad dos caracteres;
  2. que las diferencias de recuento entre esta macro y la de cualquier herramienta serán muy pequeñas.

En algún punto hay que parar y decidirse, porque hay una indefinición de qué es un carácter. Trados Studio, por ejemplo, sí cuenta 2 caracteres por cada retorno, como se aprecia en este segmento que solo tiene un retorno:

contar caracteres en Trados Studio

2.ª macro para contar caracteres con AutoHotkey

Con esto dicho, la macro que da un recuento más apropiado según mi criterio será:

; -----------------------------------------------------------------
; 2.ª macro para contar caracteres en AutoHotkey (con/sin espacios)
; www.gonduana.com/contar-caracteres-con-autohotkey
; -----------------------------------------------------------------
; WIN + ALT + R
retorno := "`r`n"
#!r::		
	Clipboard=
	SendInput, ^c
	ClipWait, 0

	cadena := Clipboard
	cadena := StrReplace(cadena, retorno, A_SPACE)
	cadena := StrReplace(cadena, A_Tab, A_SPACE)
	caracteres := StrLen(cadena)

	StrReplace(cadena, A_SPACE,, espacios)
	caracteresSinEspacios := caracteres - espacios
	
	MsgBox 0, Recuento de caracteres, %caracteresSinEspacios% caracteres SIN espacios %retorno%%caracteres% caracteres CON espacios, 6
return

Explicación de la 2.ª macro

La única diferencia es la línea 13 resaltada, en la que se buscan los retornos (variable retorno) y se sustituyen por espacios (variable A_SPACE de AutoHotkey).

También te la puedes descargar desde aquí:
Descargar 2.ª macro para contar caracteres con AutoHotkey

¿Cambiarías algo de la macro?

Por ejemplo, antes de contar los caracteres, podrías añadir una línea al principio para seleccionar todo el texto, así te evitas un paso.

Para ello, solo tendrías que insertar esta línea 11, justo antes de la línea 12:

SendInput, ^a

O quizás:

SendInput, ^e

Ten en cuenta que, en función de la aplicación, el atajo de teclado para seleccionar todo el texto será CONTROL+A o CONTROL+E.

Conclusiones

Ya hemos visto la macro para contar caracteres del texto seleccionado.

Es muy rápida, solo hay que acordarse del atajo de teclado que la ejecuta.

Tienes dos versiones, cada una trata los caracteres de retorno de una forma diferente. Pero tú puedes personalizar tu macro para que cuente los caracteres de la forma que tú quieres.

Por supuesto, queda prometido un artículo para contar las palabras de un documento.

⁂

¿Te lo vas a perder? Si no te lo quieres perder, suscríbete al boletín del blog, o sígueme en LinkedIn, Facebook o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.

Entradas relacionadas

Si te ha gustado el artículo, además de compartirlo en tus redes sociales,

Share on twitter
Share on linkedin
Share on facebook
Share on google
Share on pocket

puedes leer otros artículos de Gonduana del mismo estilo:

Cómo escribir letras griegas con AutoHotkey

15/octubre/2020

No es algo que se prodigue todos los días, pero si alguna vez has querido escribir alguna letra griega, ¿verdad que no es fácil escribir

Leer el artículo »
Macro de AutoHotkey para pegar sin formato en Word

Macro de AutoHotkey para pegar sin formato en Word

16/julio/2020

Hoy en LinkedIn he leído un artículo de How-To Geek que recomienda usar el atajo de teclado  CTRL + MAYÚS + V  para pegar sin formato en muchas aplicaciones.

Leer el artículo »

Cómo buscar en el diccionario de la RAE con AutoHotkey

6/diciembre/2019

Si te encanta buscar las definiciones en el diccionario, pero te da pereza abrir el diccionario en internet y buscar la palabra, aquí tienes la

Leer el artículo »
Cambiar la conjunción y con AutoHotkey

Cambiar la conjunción «y» a «e» con AutoHotkey

21/octubre/2019

Este artículo es una continuación del anterior, ya que ahora vamos a ver cómo cambiar la conjunción «y» a «e» con AutoHotkey cuando es necesario

Leer el artículo »
Cambiar la conjunción o con AutoHotkey

Cambiar la conjunción «o» a «u» con AutoHotkey

8/octubre/2019

Si se te escapan frases como «siete o ocho», a pesar de que sabes que la conjunción o se cambia a u cuando le sigue

Leer el artículo »
Escribir el símbolo de marca registrada y superíndice 2

Cómo escribir el símbolo de marca registrada ®

30/septiembre/2019

Si quieres escribir el símbolo de marca registrada, es decir, ®, te presento aquí la forma de hacerlo en Word, Trados Studio y en cualquier

Leer el artículo »
Jesús Prieto

Jesús Prieto

Querido traductor: quiero compartir contigo muchas cosas que podrás aprovechar como profesional: desde herramientas especiales hasta técnicas comerciales; desde estrategias de marketing hasta trucos de productividad personal; desde cómo diseñar tu marca personal hasta novedades de impuestos.
Todos los artículos

Publicado en: tradumática Etiquetado como: AutoHotkey

Comentarios

  1. Noa dice

    4/julio/2020 a las 5:29 pm

    Descubrí ayer la herramienta gracias a tu blog y me ha resultado fascinante. Muchas gracias por compartir.

    A mi alcance están cosas tan simples como usar abreviaturas, autocorrecciones y atajos para introducir caracteres especiales, pero no sabría ir más allá. ¿Hay alguna forma de aprovechar esta macro para que el número de espacios con caracteres se quede en el portapapeles? ¿O que pueda copiar la cifra desde el cuadro de texto que genera la macro?

    Responder
    • Jesús Prieto dice

      4/julio/2020 a las 7:56 pm

      Hola, Noa:
      Me alegro de que te resulte útil… O fascinante.
      También empecé aprovechando AutoHotkey para las abreviaturas, pero todo es ponerse hasta el nivel que uno quiera.
      No entiendo lo que quieres hacer con los espacios. Mira a ver este artículo sobre contar palabras, que de paso cuenta espacios. No sé si es esto lo que necesitas; si no, dame un ejemplo y lo vemos.
      Un saludo,
      … Jesús Prieto …

      Responder
      • Noa dice

        1/agosto/2020 a las 5:01 am

        ¡Uy! Disculpa, acabo de ver la respuesta.

        Me refería a que si hay alguna forma de que el resultado (la cifra de los caracteres totales) se guarde en el portapapeles. Para que, de este modo, tras ejecutarlo solo tenga que ir a una hoja de Excel y pegar el valor en una celda.

        En tu ejemplo, el cuadro da como resultado 3027 espacios totales. La idea es que se pueda copiar ese «3027» y pegarlo en cualquier sitio mediante el portapapeles. Intenté seleccionar el texto resultante tras ejecutarlo, pero no me deja.

        Parece una función bastante absurda, ya que con memorizar la cifra o apuntarla sería suficiente, pero reconozco que soy nulo para memorizar números y no siempre tengo a mano algo para apuntar.

        ¡Un saludo!

        Responder
        • Jesús Prieto dice

          1/agosto/2020 a las 10:04 am

          Hola, Noa:
          Para tener una variable en el Portapapeles de Windows, necesitas la variable interna Clipboard. Esta línea copia al Portapapeles el número de caracteres, que está en la variable caracteres:
          Clipboard:= caracteres
          Añade esta línea antes del return y ya está.
          ☛ Antes también pensaba que yo era un negado para memorizar números… Hasta que una chica me dio su número de teléfono (cosa rara en mi mundo), rápido y corriendo, sin posibilidad de apuntarlo en ese momento ¡y lo recordé durante muchos años, oye! Y es que, cuando hay interés, la realidad cambia con nosotros.

          Responder
          • Noa dice

            7/agosto/2020 a las 1:58 pm

            Muchas gracias, Jesús. Lo he introducido también en la macro para contar palabras, que al fin y al cabo va a ser la que utilice siempre. Es perfecto.

            Voy a seguir aprendiendo a través de tu página. Dudo que llegue algún día a memorizar un número de teléfono al vuelo ni aunque me vaya la vida en ello, pero al menos quiero ser capaz de crear algunas macros por mí mismo. 🙂

            Por cierto, he descubierto que la opción de «Avisarme cuando haya otros comentarios en este artículo» no está funcionando. Al menos conmigo. He revisado también el spam y no he visto notificación al respecto. ¯\_( ͠• ͜ʖ ͡•)_/¯

            Responder
            • Jesús Prieto dice

              7/agosto/2020 a las 4:53 pm

              Gracias por avisar, Noa.
              No sabía que no funcionaban las notificaciones… He cambiado un parámetro en la configuración de esa función; a ver si ahora recibes la notificación.
              ☛ Acabo de ver que no había insertado un enlace en un mensaje anterior, así que lo he añadido ahora.
              Un abrazo,
              … Jesús Prieto …

              Responder
              • Noa dice

                7/agosto/2020 a las 5:32 pm

                Me ha llegado. 🙂

              • Jesús Prieto dice

                7/agosto/2020 a las 6:03 pm

                Pues entonces era el ajuste que acabo de cambiar.
                ¡Mil gracias!

Comentar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Jesús Prieto

Jesús Prieto 2015

Sobre mí

Lo más visto…

Artículos más leídos de Gonduana
Vídeos más vistos de Gonduana
Gonduana en las redes sociales

Últimos artículos

  • Cómo escribir letras griegas con AutoHotkey
  • Macro de VBA para pegar sin formato en Word
  • Macro de AutoHotkey para pegar sin formato en Word
  • Extranjerismos en el ajedrez
  • Cómo buscar en el diccionario de la RAE con AutoHotkey
  • Los comodines de Excel
  • Novedades en el buscador de la RAE
  • Mis macros de Word para ordinales (Marisa E Schieda)
  • Mis macros de Word para abreviaturas de “número”
  • Los 10 principios del comercial

Nube de etiquetas

anglicismos AutoHotkey comodines copias de seguridad correo español Excel foto fórmulas geografía geometría GTD historia imagen impagos impuestos InDesign libros marca matemáticas mouse MT ortografía Outlook parábolas PHP poesía power PowerPoint RAE ratón regex sector tarifas teclado tipografía TM Trados Studio VBA vídeo webinarios Word WordPress XML zoología

Categorías

  • adaptación (3)
  • blog (10)
  • comercial (24)
  • contabilidad (2)
  • español (5)
  • etimología (4)
  • fiscalidad (2)
  • hardware (3)
  • macros (42)
  • marketing (8)
  • noticias (4)
  • productividad (42)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (39)
  • terminología (9)
  • traducción automática (2)
  • traducción literaria (1)
  • tradumática (38)
  • vídeo (17)
Buscar en Gonduana
Política de privacidad
Política de cookies
Aviso legal
Creative Commons

Licencia Creative Commons

Blog de Gonduana: recursos para traductores

Esta web usa cookies
Es cansino, sí, pero la ley europea me obliga a avisarte que este blog, como casi el 100%, usa cookies para recabar datos. ¿Estás de acuerdo con mi Política de cookies? Vale Rechazar Más información
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
GUARDAR Y ACEPTAR