QFileから読み取られたバイト数を見つけるために使用している次のコード。一部のファイルでは正しいファイルサイズが得られますが、一部のファイルではおおよそfileCSV.size()/2の値が得られます。文字数は同じですが、ファイルサイズが異なる2つのファイルを送信しています。リンクテキスト。QFileを読み取るために他のオブジェクトを使用する必要がありますか?
QFile fileCSV("someFile.txt");
if ( !fileCSV.open(QIODevice::ReadOnly | QIODevice::Text))
emit errorOccurredReadingCSV(this);
QTextStream textStreamCSV( &fileCSV ); // use a text stream
int fileCSVSize = fileCSV.size());
qint64 reconstructedCSVFileSize = 0;
while ( !textStreamCSV.atEnd() )
{
QString line = textStreamCSV.readLine(); // line of text excluding '\n'
if (!line.isEmpty())
{
reconstructedCSVFileSize += line.size(); //this doesn't work always
reconstructedCSVFileSize += 2;
}
else
reconstructedCSVFileSize += 2;
}
QStringのサイズを読み取るのは間違っていることを知っています。可能であれば、他の解決策を教えてください。
ありがとうございました。