Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Qt - сохранение текста из QTextEdit в файл (https://forum.antichat.xyz/showthread.php?t=167805)

Дикс 02.01.2010 22:44

Qt - сохранение текста из QTextEdit в файл
 
QTextEdit *editArea = new QTextEdit;

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

out << editArea->toPlainText();


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

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

почему?

razb 03.01.2010 02:16

Потому что разделителем записи в поток является пробел
Цитата:

Word by word. QTextStream supports streaming into QStrings, QByteArrays and char* buffers. Words are delimited by space, and leading white space is automatically skipped.
используй манипуляторы что бы убрать такой разделитель как пробел.

Дикс 03.01.2010 10:16

но ведь даже если я разобью строку по пробелам

QStringList list = str.split(" ");

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

QString str = list.join(" ");

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

Дикс 03.01.2010 10:21

если сохранять кусками, то тоже не получается

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

дальше первого элемента запись не идет

\\ChaOs// 03.01.2010 13:36

Код:

QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(editArea.toPlainText().toUtf8());

не?

Дикс 03.01.2010 18:30

самое странное что тоже нет!

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

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

flush() и close() для файла делал

\\ChaOs// 04.01.2010 00:29

Код:

        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();

Хм, у меня все прекрасно работает.
Причем оба способа.
Проверял на

Код:

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


Дикс 04.01.2010 13:10

оказывается косяк был при чтении из файла

Цитата:

QTextStream in(&file);
QString body;
in >> body;

editArea->setText(body);
сделал так:
Цитата:

QTextStream in(&file);
QString line = in.readAll();

editArea->setText(line);
и все норм

eldar85 10.02.2010 14:47

всем сдрасти) никак не могу справиться с такой проблемой, нужно картинку загрузить в формате .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();


Время: 21:23