Как написать файл из cbytearray кусками
Всем привет
мне нужно написать файл из CByteArray, обычно я делаю это быстро:
Функция WriteFile(hFile, btMemArray-&ГТ;метода GetData(), dwBytesToWrite, &ампер;dwBytesWritten, нуль);
но теперь мне нужна панель прогресса, чтобы следить за извлечением, поэтому мне нужно читать куски из cbytearray и записывать в файл, но я не могу найти решение, Можете ли вы мне помочь?
Спасибо :)
Что я уже пробовал:
int nOffset = 0; do { bDone = WriteFile(hFile, btMemArray->GetData() + nOffset, 1, &dwBytesWritten, NULL); nOffset++; } while (nOffset < btMemArray->GetSize()); <pre> The my best was this at moment but i will need obviously bigger chunk than 1 help me to do this last step
Richard MacCutchan
Почему ты звонишь ZeroMemory
когда CopyMemory
сразу же переписывает нули?
Неясно, как вы координируете чтение (откуда?) и запись данных, или сколько фактических данных вы будете обрабатывать.
0x01AA
Нет никакой необходимости в другом буфере. CByteArray
дает ли вам начальный адрес с GetData
и длина массива с GetSize
так что вы можете легко писать кусок за куском напрямую.
Drakesal
int nOffset = 0;
делать
{
сделано = функция WriteFile(hFile, btMemArray-&ГТ;метода GetData() + nOffset, 1, &ампер;dwBytesWritten, нуль);
nOffset++;
} while (nOffset < btMemArray->GetSize());
Я сделал этот прогресс, но как использовать с более высоким куском?
0x01AA
Смотрите ответ Ричарда, который выглядит очень хорошо.
Drakesal
Большое спасибо, Ричард, ты полностью решил мою проблему, благослови тебя Бог ;)