Qt中文本文件的过期日期
我有一个文本文件,上面有商品编号及其过期日期。Qt中文本文件的过期日期,qt,date,text,find,Qt,Date,Text,Find,我有一个文本文件,上面有商品编号及其过期日期。 例如: 但是我想在一个QTextEdit小部件中列出所有将在6周(42天)内过期的文章。所以我用一个QDate小部件来测试它,检查是否有东西快过期了 QDate ExpireDate = ui->date->date(); if (ExpireDate.toJulianDay() - today.toJulianDay() <= 42) { qDebug() << "Expired"; } qdateexp
例如: 但是我想在一个QTextEdit小部件中列出所有将在6周(42天)内过期的文章。所以我用一个QDate小部件来测试它,检查是否有东西快过期了
QDate ExpireDate = ui->date->date();
if (ExpireDate.toJulianDay() - today.toJulianDay() <= 42)
{
qDebug() << "Expired";
}
qdateexpiredate=ui->date->date();
对于您提供的示例文件,如果(ExpireDate.toJulianDay()-today.toJulianDay(),我将执行以下操作:
QFile file1("test.txt");
if (!file1.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QDate today = QDate::currentDate();
while (!file1.atEnd()) {
QByteArray line = file1.readLine();
QList<QByteArray> tokens = line.split(' '); // Depends on the file format.
Q_ASSERT(tokens.size() == 2);
QString dateString = tokens.at(1).trimmed();
QDate date = QDate::fromString(dateString, "d-M-yyyy");
Q_ASSERT(date.isValid());
if (date.toJulianDay() - today.toJulianDay() <= 42) {
fprintf(stdout, "Expired\n");
}
}
QFile文件1(“test.txt”);
如果(!file1.open(QIODevice::ReadOnly | QIODevice::Text))
返回;
QDate today=QDate::currentDate();
而(!file1.atEnd()){
QByteArray行=file1.readLine();
QList tokens=line.split(“”);//取决于文件格式。
Q_断言(tokens.size()==2);
QString dateString=tokens.at(1).trimmed();
QDate date=QDate::fromString(日期字符串,“d-M-yyyy”);
Q_断言(date.isValid());
如果(date.toJulianDay()-today.toJulianDay())我已经尝试过了,但是我得到了一个运行时错误传递给C运行时函数的无效参数。
和此应用程序要求运行时以一种不寻常的方式终止它。
我通过在文章编号和日期之间不使用制表符,而只是一个空格来修复它。@sWeer这就是为什么我从fi写了关于依赖关系的注释le格式。您可以改为按制表符拆分字符串:line.split('\t');
QFile file1("test.txt");
if (!file1.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QDate today = QDate::currentDate();
while (!file1.atEnd()) {
QByteArray line = file1.readLine();
QList<QByteArray> tokens = line.split(' '); // Depends on the file format.
Q_ASSERT(tokens.size() == 2);
QString dateString = tokens.at(1).trimmed();
QDate date = QDate::fromString(dateString, "d-M-yyyy");
Q_ASSERT(date.isValid());
if (date.toJulianDay() - today.toJulianDay() <= 42) {
fprintf(stdout, "Expired\n");
}
}