Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Stalin1993 от Июль 28, 2016, 09:57



Название: Как записать дату и время в файл?
Отправлено: Stalin1993 от Июль 28, 2016, 09:57
Делаю программу для обнаружения и управления USB устройств(флэшек) и к ней Делаю журнал истории о подключенных устройствах, все хорошо записывается в файл, Номер, название, точка монтирования устройства, но дату и время подключения не получается,   
Краткое описание кода. Таким обычным способом не получается передать дату.(в QT я новичок)

 QFile file("history.txt");

    if(file.open(QIODevice::WriteOnly))
    {
        qDebug()<<"File is open";
    }

file.write(usb_devices.usb_product_name)
file.write(usb_devices.usb_serial_number)


Название: Re: Как записать дату и время в файл?
Отправлено: Apktyc от Июль 28, 2016, 10:31
В предложенном коде нет и намека на попытку записи времени.
Если вопрос о том, как получить текущее время, то Вам необходим класс QDateTime  (http://doc.qt.io/qt-5/qdatetime.html), и соответственно методы QDateTime::currentDateTime() для получения текущего времени и toString() для преобразования времени в строку в нужном формате.


Название: Re: Как записать дату и время в файл?
Отправлено: Stalin1993 от Июль 28, 2016, 10:37
НА дисплей я вывожу вот так

devModel->setData(devModel->index(i,7,QModelIndex()),  QDateTime::currentDateTime(), Qt::DisplayRole);

и работает!



Название: Re: Как записать дату и время в файл?
Отправлено: Stalin1993 от Июль 28, 2016, 10:39
В предложенном коде нет и намека на попытку записи времени.
Если вопрос о том, как получить текущее время, то Вам необходим класс QDateTime  (http://doc.qt.io/qt-5/qdatetime.html), и соответственно методы QDateTime::currentDateTime() для получения текущего времени и toString() для преобразования времени в строку в нужном формате.

Вот и проблема, не могу понять в какую строку и какого формата переводить, может это можно реализовать  через  QByteArray ()?


Название: Re: Как записать дату и время в файл?
Отправлено: Stalin1993 от Июль 28, 2016, 10:40
 : ошибка: no matching function for call to 'QString::number(QDateTime&)'


Название: Re: Как записать дату и время в файл?
Отправлено: Tamori Nao от Июль 28, 2016, 10:55
QDateTime::currentDateTime().to string(); потом toUtf8() к примеру.


Название: Re: Как записать дату и время в файл?
Отправлено: Apktyc от Июль 28, 2016, 11:02
Вот и проблема, не могу понять в какую строку и какого формата переводить, может это можно реализовать  через  QByteArray ()?

Либо писать в файл через QTextStream, либо перевести QString в QByteArray c помощью to-функций (toUtf8() к примеру).


Название: Re: Как записать дату и время в файл?
Отправлено: Stalin1993 от Июль 28, 2016, 11:07
По сути что бы File.write() сработал, нужно дату перевести в QByteArray, и не могу понять как это сделать.


Название: Re: Как записать дату и время в файл?
Отправлено: Stalin1993 от Июль 28, 2016, 11:24
Я решил эту проблему, QByteArray timeout1 = QDateTime::currentDateTime().toString().toUtf8();


Название: Re: Как записать дату и время в файл?
Отправлено: gil9red от Июль 28, 2016, 11:34
Я решил эту проблему, QByteArray timeout1 = QDateTime::currentDateTime().toString().toUtf8();

О чем Tamori Nao и Apktyc и писали :)