Russian Qt Forum
Ноябрь 25, 2024, 02:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Очистка QBuffer при чтении.  (Прочитано 5210 раз)
altVis
Гость
« : Март 21, 2008, 10:59 »

День добрый.
Можно ли каким-нибудь способом заставить QBuffer вести себя, как QTcpSocket, т.е. надо чтобы после read или readAll, из буффера удалялись прочитанные данные?
Если после считывания закрыть и снова открыть буффер, в нём содержится предыдущая информация.
« Последнее редактирование: Март 21, 2008, 11:02 от altVis » Записан
Sergeich
Гость
« Ответ #1 : Март 21, 2008, 11:18 »

Отнаследуйся от QBuffer и переопредели readData()
Записан
altVis
Гость
« Ответ #2 : Март 21, 2008, 11:23 »

А как вообще удалить данные из буффера?
Не перезаписать, а именно удалить их оттуда?
Записан
Sergeich
Гость
« Ответ #3 : Март 21, 2008, 11:45 »

Код:
QBuffer buf;
buf.buffer().remove(0, n);
Записан
altVis
Гость
« Ответ #4 : Март 21, 2008, 11:56 »

Код:
QBuffer buf;
buf.buffer().remove(0, n);

Блин!Точно!
Спасибо  Улыбающийся
Хотя удобнее наверное buffer().clear()

И ещё вопрос.
А стоит ли отказываться от tcpsocket буффера в пользу своего?
Т.е. например на данный момент в программе просто передаётся ссылка на сокет в функции, откуда считывается информация.
Стоит ли создавать свой буффер и на readyRead() сокета просто скидывать всю полученную информацию в буффер, а потом передавать уже его в функции?
Есть ли какие-то реальные плюсы от этого?
Функции без бесконечных циклов, да и процессорное время практически не отнимают, т.е. задержек нет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 21.