Название: Сохранение лог-файлов. Отправлено: JamS007 от Февраль 17, 2010, 21:09 Здравствуйте,
пишу приложение, которое, по ходу выполнения, должно записывать лог файл. Я пробовал использовать Код: QFile file("Logs\\"+logFileName); код работает, но не совсем так, как нужно. 1. Весь текст записывается в файл слитно. То есть, при просмотре блокнотом видно, что все строки начинаются в конце предыдущей. А мне нужно, чтоб каждая запись в лог начиналась с новой строки. Я пробовал дописывать "endl", но это приводит к записи не читаемого символа в лог-файл. При просмотре его мощным текстовым процессором все строки начинаются с новой строки, а при просмотре блокнотом все-равно все в кучу :( Помогите неопытному. Название: Re: Сохранение лог-файлов. Отправлено: panAlexey от Февраль 17, 2010, 21:56 Код: QFile file("Logs\\"+logFileName); Название: Re: Сохранение лог-файлов. Отправлено: JamS007 от Февраль 17, 2010, 22:09 К сожалению. "endl" и '\n' это одно и тоже. На всякий случай я скомпилировал Ваш вариант, но он оказался аналогом моего.
Название: Re: Сохранение лог-файлов. Отправлено: MoPDoBoPoT от Февраль 17, 2010, 22:12 Код
Название: Re: Сохранение лог-файлов. Отправлено: break от Февраль 17, 2010, 23:10 Скинь вложением файл который получается слитным - вдруг твой блокнот глючит?
Название: Re: Сохранение лог-файлов. Отправлено: lit-uriy от Февраль 18, 2010, 03:39 Проблема в этой строке:
Код: file.open(QIODevice::Append) Из асистента: Цитировать QTextStream & endl ( QTextStream & stream ) Writes '\n' to the stream and flushes the stream. Equivalent to stream << '\n' << flush; Note: On Windows, all '\n' characters are written as '\r\n' if QTextStream's device or string is opened using the QIODevice::Text flag. See also flush(), reset(), and QTextStream manipulators. Название: Re: Сохранение лог-файлов. Отправлено: Gorin от Февраль 18, 2010, 07:23 Мой рабочий код для сохранения логов:
Код: void dialogTestDet::saveLog(const QString &datastr) Название: Re: Сохранение лог-файлов. Отправлено: voronElf от Февраль 18, 2010, 07:32 break, блокнот не глючит (хотя лучше сказать что он так глючит у всех :) ).
Вариант от MoPDoBoPoT прокатит, но эт ручками, а используемый lit-uriy и Gorin с флагом QIODevice::Text универсальнее в плане кроссплатформенности: из-за флага при записи происходит замена '\n' на "\n\r" только под виндой. |