Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как в QDataStream указать разделитель при считывании файла?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Ввод/Вывод, Сеть. Межпроцессное взаимодействие
Rocky
Вот решил переписать код
bool CProjectSettingsDlg::Open(const QString& sFileName)
{
    std::string sFileNameStd = sFileName.toStdString();
    std::ifstream file(sFileNameStd.c_str());
    if (!file.is_open())
    {
        QMessageBox::critical(this, m_pMessage->GetMessage2(eHeader), m_pMessage->GetMessage2(eErrorOpenFile));
        return false;
    }
    
    char szBuf[512];
    file.getline(szBuf, 512, '|'); m_pProjectSettings->m_sRegionName = szBuf;
    file.getline(szBuf, 512, '|'); m_pProjectSettings->m_sSettlementName = szBuf;
...............

через QDataStream. И тут же столкнулся с проблемой, что непонятно, как задавать разделитель потоку? И можно ли это вообще сделать? Или нужно не этот класс брать? Т.е. я не знаю сколько байт мне считывать... я должен считать данные от "|", до "|". Как лучше всего это сделать?

Спасибо!
BRE
Зачем тебе разделители? QDataStream обо всем позаботиться сам, просто записывай строки, а потом читай.
Или тебе нужно распарсить уже готовый файл с разделителями? Тогда, как я понял это текстовый файл и его проще читать с помощью QTextStream.
SABROG
Можно использовать метод QString QTextStream::readLine ( qint64 maxlen = 0 ) + QString::split()

Rocky
SABROG Понял, так и сделаю... Угу, уже есть готовые файлы и в них нужно считывать поля структур данных...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.