crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как в QDataStream указать разделитель при считывании файла?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Rocky Дата 11.12.2010, 0:17
  SABROG Понял, так и сделаю... Угу, уже есть готовые файлы и в них нужно считывать поля структур данных...
SABROG Дата 10.12.2010, 21:04
  Можно использовать метод QString QTextStream::readLine ( qint64 maxlen = 0 ) + QString::split()

BRE Дата 10.12.2010, 20:54
  Зачем тебе разделители? QDataStream обо всем позаботиться сам, просто записывай строки, а потом читай.
Или тебе нужно распарсить уже готовый файл с разделителями? Тогда, как я понял это текстовый файл и его проще читать с помощью QTextStream.
Rocky Дата 10.12.2010, 20:01
  Вот решил переписать код
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. И тут же столкнулся с проблемой, что непонятно, как задавать разделитель потоку? И можно ли это вообще сделать? Или нужно не этот класс брать? Т.е. я не знаю сколько байт мне считывать... я должен считать данные от "|", до "|". Как лучше всего это сделать?

Спасибо!
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 19:51