QT Creator – QString indexOf y mid – búsqueda de caracteres

Las funciones QString indexOf() y QString.mid() de la variable QString, permiten buscar caracteres y extraer segmentos de caracteres para dicha variable. Las dos funciones nos permiten por ejemplo, la búsqueda y extracción de parámetros de una variable de texto. También se usa para guardar el texto de un archivo. El principal uso de este tipo de clase es para buscar palabras clave de un archivo o cadena de texto de un puerto serial.

Para este tutorial, primero comenzaremos con ejemplos de la función indexOf y después con mid.

QString indexOf y mid

Ejemplos de QString indexOf

Para una variable del tipo QString indexOf es una clase que permite la búsqueda de ciertos caracteres. Por ejemplo, la ejecución de esta función, retorna un valor entero con la posición del texto a buscar. A continuación, comenzaremos por crear un proyecto nuevo en QT-Creator para ejecutar a los siguientes ejemplos. Estos ejemplos se escribirán después de la instrucción: ui->setupUi(this); . Los mensajes de qDebug() se podrán ver en la consola de QT. Entonces comenzamos con los siguiente ejemplos:

Nota. Para poder compilar los siguientes ejemplos, se requiere agregar a la biblioteca: #include <QDebug>.

Ejemplo-1

  1. QString variable = «@5671\r\n»;
  2. int posicion = variable.indexOf(«@»);
  3. qDebug() << «La posición de @ es: » << posición;

Si ejecutáramos la instrucción anterior, el resultado es:

Resultado:

«La posición de @ es: 0  »

Ejemplo-2

  1. QString variable = «@5671\r\n»;
  2. int posicion = variable.indexOf(«\n»);
  3. qDebug() << «La posición de @ es: » << posición;

Resultado:

La posición de @ es: 6

Ejemplo-3

  1. QString variable = «@1156711\r\n»;
  2. QString buscar = «11»;
  3. int posición = variable.indexOf(buscar);
  4. qDebug() << «La posición de @ es: » << posición;

Resultado:

La posición de @ es: 1

Ejemplo-4

  1. QString variable = «@1156711\r\n»;
  2. QString buscar = «11»;
  3. int posición = variable.indexOf(buscar,2);
  4. qDebug() << «La posición de @ es: » << posición;

Resultado:

La posición de @ es: 6

Ejemplo-5

  1. QString variable = «@1156711\r\n»;
  2. QString buscar = «12»;
  3. int posición = variable.indexOf(buscar,2);
  4. qDebug() << «La posición de @ es: » << posición;

Resultado:

La posición de @ es: -1

Función mid para QString

La función mid para una variable del tipo QString sirve para extraer una cadena de caracteres del mismo string. Se puede utilizar en conjunto con la función indexOf para buscar y extraer una cadena en particular. Por ejemplo:

Ejemplo-1 de QString.mid

  1. QString variable = «@1234\r\n»;
  2. int posicion1 = variable.indexOf(«@»);
  3. int posicion2 = variable.indexOf(«\r»);
  4.  qDebug() << «La posición de @ es: » << posicion1;
  5. qDebug() << «La posición de \\r es: » << posicion2;
  6. int diferencia = (posicion2-posicion1)-1;
  7. qDebug() << «La distancia entre pos1 y pos2 es: » << diferencia ;
  8.  QString extraccion = variable.mid(posicion1+1,diferencia);
  9. //Si extraemos los caracteres entre @ y \r
  10. qDebug() << «La extraccion es: » << extraccion.toUtf8().constData();

Resultado del ejemplo 1:

  1. La posición de @ es: 0
  2. La posición de \r es: 6
  3. La distancia entre pos1 y pos2 es: 5
  4. La extraccion es: 1234

 

Ejemplo-2 de QString.mid

  1. QString variable = «@1234\r\n»;
  2. QString extraccion = variable.mid(1);
  3. qDebug() << «La extraccion es: » << extraccion.toUtf8().constData();

Resultado del ejemplo 1:

  1. La extraccion es: 1234

Siguiente tema: QTimer con QT Creator.

Autor: Dr. Rubén Estrada Marmolejo

Escríbenos tus dudas o comentarios

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.