3
Эта функция должна разбить QString на (почти) равные фрагменты: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 всегда одинакова в каждой итерации. Что не так? P.S. Строка ячейки может быть большой (до 100K символов)
Можете ли вы предоставить минимальный автономный пример, воспроизводящий проблему? –
отлично подходит для меня. Тем не менее, ваш 'fragmentSize' всегда' c_maxCellSize', если более одного фрагмента, не так ли? –
@SebastianLange Нет, если cell.size()
LibertyPaul