Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Spanish
  4. Problema comparando un QList con un QString
Qt 6.11 is out! See what's new in the release blog

Problema comparando un QList con un QString

Scheduled Pinned Locked Moved Solved Spanish
4 Posts 4 Posters 2.5k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    meepo1
    wrote on last edited by meepo1
    #1

    Mi codigo es el siguiente:

    for(int i = 0; i < 25; i++){
                if(vector[i].compare(aux) == 1){ //Problema
                     cont++;
                     query2.bindValue(":idAlmacenados",cont);
                     query2.bindValue(":HoraA",b);
                     query2.bindValue(":HoraB",c);
                     query2.bindValue(":Nombre",a);
                     query2.bindValue(":Grupo",d);
                }
    }
     
    

    Mi problema es que cada vez que trato de compara el vector[i](del tipo QList) con aux, el programa a la hora de compilar no muestra errores, pero a la hora de correrlo el programa colapsa y se cierra. El problema se que esta en el "compare" ya que cuando saco el "== 1" el programa corre pero cuando obtengo el valor numerico de "vector[i].compare(aux)" el resultado es -3 cuando segun tengo entendido compare debería dar un booleano. Alguien me puede explicar por que pasa esto y como deberia compara un QList
    PD: QVector tiene el mismo problema y el "==" sin compare no sirve

    E 1 Reply Last reply
    0
    • EddyE Offline
      EddyE Offline
      Eddy
      wrote on last edited by Eddy
      #2

      If vector is a Qlist, why not using

      for(int i = 0; i < vector.length(); i++){
      

      Also it is advised to use "at(i)" instead of [] see the docs

      Edit : tested to use google translate here and it seems ok... i hope:

      Si el vector es un qlist, ¿por qué no usar

      for(int i = 0; i < vector.length(); i++){
      También se recomienda para usar "at(i)" lugar de [] ver los documentos

      Editar: probado para usar traductor Google aquí y parece bien ... espero

      Qt Certified Specialist
      www.edalsolutions.be

      1 Reply Last reply
      2
      • E Offline
        E Offline
        Efreen
        wrote on last edited by Efreen
        #3

        Vector supongo que es un QList de QStrings y aux es un QString.

        Compare siempre devuelve un int mira la documentacion: http://doc.qt.io/qt-5/qstring.html#compare-2. Ademas la sentencia if() soporta tanto booleano como enteros, si es != 0 es true y si es 0 false. Asi que el problema del error y se te cierra no creo que venga del compare.

        1 Reply Last reply
        2
        • M meepo1

          Mi codigo es el siguiente:

          for(int i = 0; i < 25; i++){
                      if(vector[i].compare(aux) == 1){ //Problema
                           cont++;
                           query2.bindValue(":idAlmacenados",cont);
                           query2.bindValue(":HoraA",b);
                           query2.bindValue(":HoraB",c);
                           query2.bindValue(":Nombre",a);
                           query2.bindValue(":Grupo",d);
                      }
          }
           
          

          Mi problema es que cada vez que trato de compara el vector[i](del tipo QList) con aux, el programa a la hora de compilar no muestra errores, pero a la hora de correrlo el programa colapsa y se cierra. El problema se que esta en el "compare" ya que cuando saco el "== 1" el programa corre pero cuando obtengo el valor numerico de "vector[i].compare(aux)" el resultado es -3 cuando segun tengo entendido compare debería dar un booleano. Alguien me puede explicar por que pasa esto y como deberia compara un QList
          PD: QVector tiene el mismo problema y el "==" sin compare no sirve

          E Offline
          E Offline
          Eduardo12l
          wrote on last edited by
          #4

          @meepo1 Usa at() en lugar de compare() o []

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved