Russian Qt Forum

Qt => Общие вопросы => Тема начата: melifaro от Июль 24, 2009, 10:25



Название: Потоки и чтение из файла
Отправлено: 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();

как так? в основном потоке работал и предыдущий код...


Название: Re: Потоки и чтение из файла
Отправлено: pastor от Июль 24, 2009, 10:29
http://www.prog.org.ru/topic_10130_0.html


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


Название: Re: Потоки и чтение из файла
Отправлено: ритт от Июль 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);
       }
...