Ler lista, identificando repetidos



  • Bom dia galera,

    Tenho uma StringList formada por um conjunto de informações vindos de uma query, ex:
    Cada QString formada por:" codigo; ip; local; data "
    " 1586; 190.150.60.158; C:\Users\TI; 2013-02-21 15:07:37.848 "
    " 1611; 190.160.60.158; 168.6.33\TI2; 2013-02-21 16:05:39.585 "
    " 1578; 190.168.70.159; C:\Users\TI\Desktop\; 2013-02-21 14:57:53.967 "
    .
    .
    .

    Então, Estou tentando percorrer a lista, identificando quais Ips são repetidos, e destes repetidos, devo permanecer apenas com aquele que tiver o maior codigo na lista.

    Apenas uma idéia do que estou tentando fazer atualmente, mas sem sucesso =)

    @for (int i = 0; i < removeRepetido.size(); i++){
    atual = removeRepetido.value(i).split(";").at(1);

        if (atual == removeRepetido.value(i+1).split(";").at(1) ){
            qDebug() << "sera?" << removeRepetido.value(i).split(";").at(1) << "ATUAL" << atual;
        }
    }@
    

    Edição: formatação do código - anselmolsm



  • A linha 4 do seu código acima dá problema na última iteração do for.

    Uma idéia: Usar QHash para guardar os IPs e os códigos, na medida em que forem identificados.

    Se um IP não estiver armazenado, guarde-o juntamente com o código.
    Se já estiver no hash, verifique se o código atual é maior do que o armazenado. Nesse caso, substitua o código armazenado pelo código atual.

    No final você terá um QHash com os IPs identificados e, no caso dos repetidos, o que tem maior código.



  • Obrigado pela ajuda, Tentei usar o Qhash, mas foi sem sucesso até que consegui uma resposta no outro forum indicando Qmap (ja sou mais familiarizado com ele). Mas mesmo assim obrigado pela ajuda, vou dar uma olhada em Qhash com mais calma assim que terminar este projeto.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.