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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Потоки и чтение из файла  (Прочитано 2890 раз)
melifaro
Гость
« : Июль 24, 2009, 10:25 »

создаю класс - вторичный поток для чтения данных, в нем в функция run() имеет вот такой вид:

Код:
	...
sfp = new StructForPole;
        QDataStream in(file);
        Rez_10_A2 *buf;
        while(!in.atEnd())
        {
            in.readRawData((char *)buf,42);
            sfp->addRez(*buf);
        }
...
программа зависает, и когда я её тестил не работала именно функция in.readRawData((char *)buf,42);(если её закоментить - всё пашет) пробывал заменить на file->read((char *)buf,42) тотже эфект, долго прыгал в дебагере, вроде зависает функция memcpy();
помогите понять...

заработало когда создал вспомогательную переменную ch

Код:
        Rez_10_A2 *buf;
        char *ch;
        while(!file->atEnd())
        {
            file->read(ch,42);
            buf = (Rez_10_A2 *)ch;
            sfp->addRez(*buf);
        }
        file->close();

как так? в основном потоке работал и предыдущий код...
« Последнее редактирование: Июль 24, 2009, 10:40 от melifaro » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Июль 24, 2009, 10:29 »

http://www.prog.org.ru/topic_10130_0.html


ЗЫ: Пользуйся тегом код для форматирования исходного кода
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ритт
Гость
« Ответ #2 : Июль 24, 2009, 12:53 »

зависала? странно, что не крашило прям сразу Улыбающийся

Код
C++ (Qt)
 
...
sfp = new StructForPole;
       QDataStream in(file);
       Rez_10_A2 buf;
       while(!in.atEnd())
       {
           in.readRawData((char *)&buf,42);
           sfp->addRez(buf);
       }
...
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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