2

たとえば、8 バイトの長さのファイルがあります。たとえば、次のようになります。

22222222

さて、私は最初に5バイトと言って、それらを変更します。例のために。に11111

最後に、それらを ONTO EXCISTING DATA ファイルに書き込みたいので、ファイルは次のようになると思います。

11111222

しかし11111、ファイルが消去されているため、 しか得られません。消去を無効にするにはどうすればよいですか? (この質問は存在するかもしれませんが、このような質問は見つかりませんでした)

4

3 に答える 3

7

ファイルを正確に処理していることに応じて、ファイルをメモリマップすることをお勧めします。

QFile f("The file");
f.open(QIODevice::ReadWrite);
uchar *buffer = f.map(0, 5);

// The following line will edit (both read from and write to)
// the file without clearing it first:
for (int i=0; i<5; ++i) buffer[i] -= 1;

f.unmap(buffer);
f.close();
于 2010-08-06T11:55:25.933 に答える
2
void fileopen()
{
QDataStream Input(&file);
Input>>"11111";
Input>>"22222";
file.close();
}

この関数はデータを書き込みます。

QDataStream &operator<<(QDataStream &ds,const QString &data)
{

ds<<data.toLatin1().data();
ds<<data.toLatin1().data();
return ds;
}
于 2010-08-06T10:39:28.270 に答える
1

QFileでを開き、| QIODevice::Append次にQFile::seek()を作成してQDataStreamから、QFileオブジェクトに を作成してください。ただしQDataStream、出力に制御情報が追加されることに注意してください。そのため、おそらく希望どおりの結果にはなりません。

また、バイナリ データではなくテキストを書きたい場合は、 を試してくださいQTextStream

于 2010-08-06T11:45:56.253 に答える