Задать вопрос

Как осуществить чтение больших файлов на QT?

Приветствую.

На QT пишу редко, отсюда незнание особенностей.
Столкнулся с проблемой при чтении файлов, размер которых превышает 1.5Гб.

Предположим, имеется текстовый файл размером 2 Гб, хочу впихнуть его в память в виде хеш-таблицы.
В качестве примера:
QString line;

    QFile mfile("bigfile.txt");
    if(!mfile.open(QIODevice::ReadOnly))
           qDebug() << "Error opening file";
    QTextStream in(&mfile);
    QHash<QString, quint64> myHash;
    quint64 c = 0;
    do {
        c++;
        line = in.readLine();
        myHash.insert(line, c);
    } while (!line.isNull());


Дело в том, что когда приложение набирает около 1300 мб, вылетает ошибка.
4dee37afdcc3075c89ce0b7f510432.jpg

Судя по всему, это защита ОС.
Хотелось бы услышать правильное решение проблемы.

Основная задача - это создать что-то вроде массива/хеш таблицы для удобной работы с элементами, удаление дублей, сортировка и т.д.
Заранее спасибо.
  • Вопрос задан
  • 5237 просмотров
Подписаться 4 Комментировать
Подписчики вопроса 4 К ответам на вопрос (4)