Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt中文本文件的过期日期_Qt_Date_Text_Find - Fatal编程技术网

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");
    }
}