C++ Qt porównywanie tablic

0

Witam, mógłby mnie ktoś nakierować jak poprawie porównać dane z tablic. A mianowicie mam łącznie 6 tablic, pobrane dane są z dwóch plików (do każdego pliku po 3 tablice nazwa pliku, rozmiar, crcsum). I teraz chciałbym porównać tak. Jeżeli w tablicy check_2_all_log_name nie ma jakiegoś elementu, który jest w check_all_log_name to żeby wywołał funkcję pobierz_element(), jeżeli element istnieje a różni się albo rozmiarem albo crcsum to także wywołał funkcję pobierz_element(). Oto co do tej pory napisałem :

void metin2_patcher::check_log()
{
    QFile check("log_ftp.txt");
    QFile check2("log.txt");

    qDebug() << "check_log";

    if(!check.open(QIODevice::ReadOnly))
        qDebug() << "Nie można otworzyć pliku log_ftp.txt";

    if(!check2.open(QIODevice::ReadOnly))
        qDebug() << "Nie można otworzyć pliku log.txt";

    if(check.isOpen()){
        qDebug() << "Plik otwarty";
    }
    else
        qDebug() << "Plik zamknięty";

    QTextStream in(&check);
    QTextStream in_2(&check2);

    int licznik = 0;
    QString check_all_log_name[1024];
    QString check_all_log_size[1024];
    QString check_all_log_sum[1024];

    while(!in.atEnd())
    {
        QString line = in.readLine();
        QStringList list = line.split("\t");

        check_all_log_name[licznik] = list.at(0);
        check_all_log_size[licznik] = list.at(1);
        check_all_log_sum[licznik] = list.at(2);
        licznik++;
    }

    licznik = 0;
    QString check_2_all_log_name[1024];
    QString check_2_all_log_size[1024];
    QString check_2_all_log_sum[1024];

    while(!in_2.atEnd())
    {
        QString line = in_2.readLine();
        QStringList list = line.split("\t");

        check_2_all_log_name[licznik] = list.at(0);
        check_2_all_log_size[licznik] = list.at(1);
        check_2_all_log_sum[licznik] = list.at(2);
        licznik++;
    }

    check.close();
    check2.close();
}
0

Co sądzicie o takim porównywaniu ??

    bool spr[1024];

    for(int i = 0; i < 1024; i++)
    {
        spr[i] = true;
    }

    for(int i = 0; i < 1024; i++)
    {
        for(int j = 0; j < 1024; j++)
        {
            if(check_all_log_name[i] == check_2_all_log_name[j] &&
               check_all_log_size[i] == check_2_all_log_size[j] &&
               check_all_log_sum[i] == check_2_all_log_sum[j])
            {
                spr[i] = false;
            }
        }
    }

    for(int k = 0; k < 1024; k++)
    {
        if(spr[k] == true && check_all_log_name[k] != "")
            qDebug() << "asd : " << check_all_log_name[k];
    }

Ps. Temat można zamknąć, wszystko działa prawidłowo.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.