QString::mid()总是返回相同的结果

QString::mid() always returns the same result

本文关键字:结果 返回 mid QString      更新时间:2023-10-16

此函数应将QString拆分为(几乎)相等的片段:

QStringList splitCell(const QString& cell) const
{
    QStringList result;
    const int currentSize = cell.size();
    const int fragmentCount = currentSize / c_maxCellSize + (currentSize % c_maxCellSize ? 1 : 0); // c_maxCellSize = 32758
    const int fragmentSize = currentSize / fragmentCount + (currentSize % fragmentCount ? 1 : 0);
    for (int fragment = 0; fragment < fragmentCount; ++fragment)
    {
        QString currentFragment = cell.mid(fragmentSize * fragment, fragmentSize);
        result << currentFragment;
    }
    return result;
}

但是如果fragmentCount>1,那么currentFragment在每次迭代中总是相同的。怎么了?附言:单元格字符串可能很大(最多100K个符号)

这似乎是一个编译器问题(MS VS2008恐龙版)。经过几次重建,它运行良好。

相关文章: