Russian Qt Forum

Qt => Общие вопросы => Тема начата: shaft_s от Сентябрь 28, 2007, 16:30



Название: Помогите неучу
Отправлено: shaft_s от Сентябрь 28, 2007, 16:30
имеется такая конструкция
Код:
QFile file("20070920081562.ama");
if (!file.open(QIODevice::ReadOnly)) {
log->append( tr("Cannot open file %1 for reading: %2 ").arg(file.fileName ()) .arg(file.errorString()));

    return;
}

QByteArray a=file.readAll();
if(a.at(0)==200){
log->append( tr("код двести найден "));

}
подскажите пплиз как a.at(n) преобразовать в int 8, а то ведь эта конструкция возврашает char, перепробывал все что на ум приходило. заранее благодарю!!!
Qt 4.2


Название: Re: Помогите неучу
Отправлено: pastor от Сентябрь 28, 2007, 19:40
А чём char не угодил? Насколько я знаю, int8 это signed char, т.е. собственно говоря то, что вы получаете методом at


Название: Re: Помогите неучу
Отправлено: Вячеслав от Сентябрь 28, 2007, 19:46
ну да ;) а 200 это покрайней мере sint16 ;) или unsigned char/unsigned short таки компилятор орать должен, что сравнивает разные типы ....


Название: Re: Помогите неучу
Отправлено: pastor от Сентябрь 28, 2007, 19:53
Да, Вячеслав, вы правы! 200 в обычный char не укладываеться. Как-то на этоя я не обратил внимание :)


Название: Re: Помогите неучу
Отправлено: Вячеслав от Сентябрь 28, 2007, 20:13
Железяки ( встраиваемые системы) выдрессировали на диапазон констант смотреть ;) Правда байта меньше 7 бит _даавно_ не видел,за то недавно напаролся на char размером 18 бит :(


Название: Re: Помогите неучу
Отправлено: vaprele07 от Сентябрь 29, 2007, 03:28
if((uchar)a.at(0)==200)
в qt4 есть тип quint8: if((quint8)a.at(0)==200)


Название: Re: Помогите неучу
Отправлено: shaft_s от Сентябрь 29, 2007, 18:59
Спасибо всем за помощь!!!
У меня там в листинге вкралась одна ошибочка, 200 я записал в 10 виде а надо было 0хс8.
Проблему решил использованием вместо qbytearray qlist<quint8>.
И сразу попутный вопрос? Кто нибудь разбирался с ама файлами есть пара вопросов.


Название: Re: Помогите неучу
Отправлено: SLiDER от Сентябрь 29, 2007, 20:55
за то недавно напаролся на char размером 18 бит :(

Эт где это такая красота  ??? У меня вот все типы по 32 бита, даже char, и хоть ты тресни, а жаба то душит :'(


Название: Re: Помогите неучу
Отправлено: Вячеслав от Сентябрь 29, 2007, 21:18
за то недавно напаролся на char размером 18 бит :(

Эт где это такая красота  ??? У меня вот все типы по 32 бита, даже char, и хоть ты тресни, а жаба то душит :'(

Заказное поделие - клон 286 с убитой байтовой адресацией :( Таки мя :(


Название: Re: Помогите неучу
Отправлено: Вячеслав от Сентябрь 29, 2007, 21:22
Спасибо всем за помощь!!!
У меня там в листинге вкралась одна ошибочка, 200 я записал в 10 виде а надо было 0хс8.
Проблему решил использованием вместо qbytearray qlist<quint8>.
И сразу попутный вопрос? Кто нибудь разбирался с ама файлами есть пара вопросов.

А какая нафиг разнца в какой системе константы рисовать ? Это роляли не играет ;)
И что такое ама - файл ?


Название: Re: Помогите неучу
Отправлено: shaft_s от Сентябрь 29, 2007, 21:41
ama файлы пременяют для записи тарификационных данных на электронных станциях.


Название: Re: Помогите неучу
Отправлено: Вячеслав от Сентябрь 29, 2007, 21:56
чего-то я не на дефинити не на меридиане такого не видал ж) Наверное гранаты не той системы ;) Кинь кусочек плиз - посмотреть для общего развития ...


Название: Re: Помогите неучу
Отправлено: shaft_s от Сентябрь 29, 2007, 22:01
на si2000 и ewsd точно есть а на каких советских точно не помню.
http://slil.ru/24915280 (http://slil.ru/24915280)


Название: Re: Помогите неучу
Отправлено: Вячеслав от Сентябрь 29, 2007, 22:20
на si2000 и ewsd точно есть а на каких советских точно не помню.
http://slil.ru/24915280 (http://slil.ru/24915280)
Гы  ??? ??? ??? ;D ;D А советские-то причем !? Не поминай всуе ... После неадекватного секса на работе с изделиями П-443/444/409 словосочетание "отечественная телефонная станция" вызывает дикий приступ ржача :(

Мдя накрутили ребята .... А просто скинуть как все нормальные люди в varrec немогли ;) Собсвенно по теме - формат расписан, конверторы в текст есть какие грабли ? ;)


Название: Re: Помогите неучу
Отправлено: shaft_s от Сентябрь 30, 2007, 16:09
Имеется еще 1 вопросик ко много уважаемым знатокам!!!
Есть удаленный диск Y: подключенный на скорости 2.048мб находящийся км за 300, на этом диске
находится около 100000 файлов формата i1195yyyymmdd xxx.ama  xxx заранее не известно, за 1
день их может быть от 20 до 50 пытаюсь сделать так
Код:
QStringList fileж
for(i=0;i<bdate.daysTo(edate)+1;i++)
  {
file<<QString("i1194%1*.ama").arg(bdate.addDays(i).toString("yyyyMMdd"));

  dir.setNameFilters(file);
  QFileInfoList list = dir.entryInfoList();
dir.entryInfoList() работает настолько медленно.
Подскажите уважаемые как лудше сделать. И сильно не пинайте я только начинаю постигать всю мощь QT/


Название: Re: Помогите неучу
Отправлено: Пантер от Сентябрь 30, 2007, 17:54
dir.entryList() передаст только имена. Что тебе вообще нужно об этих файлах знать?


Название: Re: Помогите неучу
Отправлено: shaft_s от Сентябрь 30, 2007, 18:02
По маске мне нужно знать точное имя файла чтоб его потом открыть.
Когдато в борланде делал так
Код:
   
       done=findfirst("i199920002020*.ama",&VIC,0);//ИШЕМ ЗАДАННЫЙ ФАЙЛ
           while(!done)//колличество найденных
             {
               f2=fopen(VIC.ff_name,"r");
                }
Так эта конструкция настолько быстро работала с удаленным диско!!!
А как сделать также в qt незнаю???


Название: Re: Помогите неучу
Отправлено: Пантер от Сентябрь 30, 2007, 18:26
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
................................................
QString qsDirName=// Имя папки
register struct dirent *dirbuf;
DIR *fddir;
if ((fddir=opendir(qsDirName.toLocal8Bit()))==NULL)
{
   return;
}
while ((dirbuf=readdir(fddir))!=NULL)
{
   Вот тут делаешь с файлом что хочешь. Его имя
   QString qsName=QString().fromLocal8Bit(dirbuf->d_name);
   Только нужно отсеять ненужные файлы
}


Название: Re: Помогите неучу
Отправлено: ритт от Сентябрь 30, 2007, 18:34
а QFileInfo ?


Название: Re: Помогите неучу
Отправлено: Пантер от Сентябрь 30, 2007, 18:38
А что QFileInfo? Ты это к чему?


Название: Re: Помогите неучу
Отправлено: shaft_s от Сентябрь 30, 2007, 18:40
Спасибо друг чуть попозже попробую а то надо валить домой, а там и попробую.


Название: Re: Помогите неучу
Отправлено: shaft_s от Октябрь 06, 2007, 10:53
panter_dsd  попробывал твою конструкцию она тоже тормозит очень страшно. Может есть еше какие нибудь варианты???