Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2019, 21:16   #1
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию Как дописать в буфер?

Ребята подскажите, столкнулся с такой проблемкой.
У меня есть исходный файл, с него надо считать определенные блоки в буфер.И потом все енто записать в результирующий файл.
Размер результирующего файла я точно знаю. Выделил под буфер нужный размер , заполнил нулями, Но вот проблема каждый новый блок перезаписывает буфер, а нужно его дописать в конец прошлого блока!SetFilePointer как я понял работает только с файлами.
Если его аналог для буфера?Записать первый блок, встать на его конец, записать следующий и тд.
Код:
LPBYTE pBuffer_stab = (LPBYTE)malloc(NEW_size);
memset(pBuffer_stab, 0, NEW_size);
ReadFile(FileR, pBuffer_stab, размер 1блока, &dwRead, NULL);
//дальше?
zombivadim вне форума Ответить с цитированием
Старый 02.09.2019, 21:41   #2
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Второй параметр функции ReadFile - адрес, по которому будут писаться данные. Поэтому просто прибавьте к адресу нужное смещение
Код:
ReadFile(FileR, pBuffer_stab + delta, размер 1блока, &dwRead, NULL);
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 02.09.2019, 23:07   #3
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Sam Gold Посмотреть сообщение
по которому будут писаться данные
Вау так просто то.А я почему то думал что енто указатель на буфер...
Буду пробовать..
zombivadim вне форума Ответить с цитированием
Старый 02.09.2019, 23:19   #4
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
Сообщение от zombivadim Посмотреть сообщение
А я почему то думал что енто указатель на буфер...
Буду пробовать..
Это он и есть. Указатель на буфер и есть адрес буфера. Прибавляя к нему некоторое значение, получим следующий адрес, по которому будем писать.
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 03.09.2019, 00:24   #5
zombivadim
Пользователь
 
Регистрация: 18.08.2019
Сообщений: 10
По умолчанию

Спасибо вам огромное. Все получилось. Я до этого создавал отдельный буфер для каждого блока. С ума можно было сойти с размерами.
zombivadim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
буфер в GDI+? juan666777 Мультимедиа в Delphi 7 09.03.2013 15:01
Буфер обмена X@OC Общие вопросы по Java, Java SE, Kotlin 1 10.08.2011 14:34
Значение в буфер zhig Microsoft Office Word 3 16.04.2010 13:07
Кольцевой буфер KTOIA Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.11.2009 18:17
Буфер Черничный Общие вопросы Delphi 5 10.09.2008 09:35