HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Qt - сохранение текста из QTextEdit в файл
  #1  
Старый 02.01.2010, 22:44
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами: 10562786

Репутация: 537


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

QTextEdit *editArea = new QTextEdit;

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

out << editArea->toPlainText();


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

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

почему?
 
Ответить с цитированием

  #2  
Старый 03.01.2010, 02:16
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами: 9017461

Репутация: 414


По умолчанию

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

  #3  
Старый 03.01.2010, 10:16
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами: 10562786

Репутация: 537


По умолчанию

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

QStringList list = str.split(" ");

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

QString str = list.join(" ");

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

  #4  
Старый 03.01.2010, 10:21
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами: 10562786

Репутация: 537


По умолчанию

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

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

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

  #5  
Старый 03.01.2010, 13:36
\\ChaOs//
Познающий
Регистрация: 26.02.2009
Сообщений: 65
С нами: 9054681

Репутация: 34
По умолчанию

Код:
QFile file(fileName);
file.open(QIODevice::WriteOnly);
file.write(editArea.toPlainText().toUtf8());
не?
 
Ответить с цитированием

  #6  
Старый 03.01.2010, 18:30
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами: 10562786

Репутация: 537


По умолчанию

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

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

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

flush() и close() для файла делал
 
Ответить с цитированием

  #7  
Старый 04.01.2010, 00:29
\\ChaOs//
Познающий
Регистрация: 26.02.2009
Сообщений: 65
С нами: 9054681

Репутация: 34
По умолчанию

Код:
	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
 
Ответить с цитированием

  #8  
Старый 04.01.2010, 13:10
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
С нами: 10562786

Репутация: 537


По умолчанию

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

Цитата:
QTextStream in(&file);
QString body;
in >> body;

editArea->setText(body);
сделал так:
Цитата:
QTextStream in(&file);
QString line = in.readAll();

editArea->setText(line);
и все норм
 
Ответить с цитированием

  #9  
Старый 10.02.2010, 14:47
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
С нами: 8792626

Репутация: 5
По умолчанию

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МикроДжоинер для начинающих ReanimatoR Статьи 23 02.01.2010 15:07
Фейки dgonik777 Уязвимости Mail-сервис 34 14.06.2009 04:01
Пароль в CPanel ufo44 Уязвимости 11 07.12.2006 00:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.