Russian Qt Forum
Апрель 25, 2024, 01:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как записать дату и время в файл?  (Прочитано 6125 раз)
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)
Записан
Apktyc
Самовар
**
Offline Offline

Сообщений: 132


Просмотр профиля
« Ответ #1 : Июль 28, 2016, 10:31 »

В предложенном коде нет и намека на попытку записи времени.
Если вопрос о том, как получить текущее время, то Вам необходим класс QDateTime , и соответственно методы QDateTime::currentDateTime() для получения текущего времени и toString() для преобразования времени в строку в нужном формате.
Записан
Stalin1993
Гость
« Ответ #2 : Июль 28, 2016, 10:37 »

НА дисплей я вывожу вот так

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

и работает!

Записан
Stalin1993
Гость
« Ответ #3 : Июль 28, 2016, 10:39 »

В предложенном коде нет и намека на попытку записи времени.
Если вопрос о том, как получить текущее время, то Вам необходим класс QDateTime , и соответственно методы QDateTime::currentDateTime() для получения текущего времени и toString() для преобразования времени в строку в нужном формате.

Вот и проблема, не могу понять в какую строку и какого формата переводить, может это можно реализовать  через  QByteArray ()?
Записан
Stalin1993
Гость
« Ответ #4 : Июль 28, 2016, 10:40 »

 : ошибка: no matching function for call to 'QString::number(QDateTime&)'
Записан
Tamori Nao
Гость
« Ответ #5 : Июль 28, 2016, 10:55 »

QDateTime::currentDateTime().to string(); потом toUtf8() к примеру.
Записан
Apktyc
Самовар
**
Offline Offline

Сообщений: 132


Просмотр профиля
« Ответ #6 : Июль 28, 2016, 11:02 »

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

Либо писать в файл через QTextStream, либо перевести QString в QByteArray c помощью to-функций (toUtf8() к примеру).
Записан
Stalin1993
Гость
« Ответ #7 : Июль 28, 2016, 11:07 »

По сути что бы File.write() сработал, нужно дату перевести в QByteArray, и не могу понять как это сделать.
Записан
Stalin1993
Гость
« Ответ #8 : Июль 28, 2016, 11:24 »

Я решил эту проблему, QByteArray timeout1 = QDateTime::currentDateTime().toString().toUtf8();
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #9 : Июль 28, 2016, 11:34 »

Я решил эту проблему, QByteArray timeout1 = QDateTime::currentDateTime().toString().toUtf8();

О чем Tamori Nao и Apktyc и писали Улыбающийся
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.