Qt - сохранение текста из QTextEdit в файл

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Дикс, 2 Jan 2010.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    QTextEdit *editArea = new QTextEdit;

    QFile file(fileName);
    QTextStream out(&file);

    out << editArea->toPlainText();


    вот, сохраняю из текстового поля в файл
    но сохраняет до первого пробела

    если там "строка1 строка2", то в файл попадет только "строка1"

    почему?
     
  2. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    Потому что разделителем записи в поток является пробел
    используй манипуляторы что бы убрать такой разделитель как пробел.
     
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    но ведь даже если я разобью строку по пробелам

    QStringList list = str.split(" ");

    а потом соберу в одну строку

    QString str = list.join(" ");

    что мне это даст?
    удалить пробелы я не могу - т.к. текст останется без пробелов
    отправлять их на вывод получается тоже нельзя
     
  4. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    если сохранять кусками, то тоже не получается

    foreach (QString str, list)
    out << str << " ";

    дальше первого элемента запись не идет
     
  5. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Code:
    QFile file(fileName);
    file.open(QIODevice::WriteOnly);
    file.write(editArea.toPlainText().toUtf8());
    не?
     
  6. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    самое странное что тоже нет!

    допустим в файле записана 1

    если изменить на 12222 - так и сохранит
    если изменить на 12222 333 - то сохранит до пробела, т.е. только "12222"

    flush() и close() для файла делал
     
  7. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Code:
    	QFile file("file1.txt");
    	QFile file2("file2.txt");
    
    	file.open(QIODevice::WriteOnly);
    	file2.open(QIODevice::WriteOnly);
    
    	QTextStream out(&file2);
    
    	file.write(ui.textEdit->toPlainText().toUtf8());
    	out<<ui.textEdit->toPlainText();
    
    	file.close();
    	file2.close();
    Хм, у меня все прекрасно работает.
    Причем оба способа.
    Проверял на

    Code:
    1 2 3 4 5 6 7 8 9 10
    10 9 8 7 6 5 4 3 2 1
    123 321 123 321 123
     
  8. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    оказывается косяк был при чтении из файла

    сделал так:
    и все норм
     
  9. eldar85

    eldar85 New Member

    Joined:
    27 Aug 2009
    Messages:
    126
    Likes Received:
    1
    Reputations:
    0
    всем сдрасти) никак не могу справиться с такой проблемой, нужно картинку загрузить в формате .gif
    делаю загрузку курлом в строку, потом записываю в файл, но файл получается какого то не правельного формата... что делать подскажите плиз...
    вот код:

    QString StringJPG;
    StringJPG.toStdString() = curl->load(http://........gif)->exec();
    QFile file("captcha.gif");
    file.open(QIODevice::WriteOnly);
    QDataStream out(&file);
    out << StringWithCaptcha;
    file.close();