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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Помогите неучу  (Прочитано 12842 раз)
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
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Сентябрь 28, 2007, 19:40 »

А чём char не угодил? Насколько я знаю, int8 это signed char, т.е. собственно говоря то, что вы получаете методом at
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Вячеслав
Гость
« Ответ #2 : Сентябрь 28, 2007, 19:46 »

ну да Подмигивающий а 200 это покрайней мере sint16 Подмигивающий или unsigned char/unsigned short таки компилятор орать должен, что сравнивает разные типы ....
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Сентябрь 28, 2007, 19:53 »

Да, Вячеслав, вы правы! 200 в обычный char не укладываеться. Как-то на этоя я не обратил внимание Улыбающийся
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Вячеслав
Гость
« Ответ #4 : Сентябрь 28, 2007, 20:13 »

Железяки ( встраиваемые системы) выдрессировали на диапазон констант смотреть Подмигивающий Правда байта меньше 7 бит _даавно_ не видел,за то недавно напаролся на char размером 18 бит Грустный
Записан
vaprele07
Гость
« Ответ #5 : Сентябрь 29, 2007, 03:28 »

if((uchar)a.at(0)==200)
в qt4 есть тип quint8: if((quint8)a.at(0)==200)
Записан
shaft_s
Гость
« Ответ #6 : Сентябрь 29, 2007, 18:59 »

Спасибо всем за помощь!!!
У меня там в листинге вкралась одна ошибочка, 200 я записал в 10 виде а надо было 0хс8.
Проблему решил использованием вместо qbytearray qlist<quint8>.
И сразу попутный вопрос? Кто нибудь разбирался с ама файлами есть пара вопросов.
Записан
SLiDER
Гость
« Ответ #7 : Сентябрь 29, 2007, 20:55 »

за то недавно напаролся на char размером 18 бит Грустный

Эт где это такая красота  Непонимающий У меня вот все типы по 32 бита, даже char, и хоть ты тресни, а жаба то душит Плачущий
Записан
Вячеслав
Гость
« Ответ #8 : Сентябрь 29, 2007, 21:18 »

за то недавно напаролся на char размером 18 бит Грустный

Эт где это такая красота  Непонимающий У меня вот все типы по 32 бита, даже char, и хоть ты тресни, а жаба то душит Плачущий

Заказное поделие - клон 286 с убитой байтовой адресацией Грустный Таки мя Грустный
Записан
Вячеслав
Гость
« Ответ #9 : Сентябрь 29, 2007, 21:22 »

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

А какая нафиг разнца в какой системе константы рисовать ? Это роляли не играет Подмигивающий
И что такое ама - файл ?
Записан
shaft_s
Гость
« Ответ #10 : Сентябрь 29, 2007, 21:41 »

ama файлы пременяют для записи тарификационных данных на электронных станциях.
Записан
Вячеслав
Гость
« Ответ #11 : Сентябрь 29, 2007, 21:56 »

чего-то я не на дефинити не на меридиане такого не видал ж) Наверное гранаты не той системы Подмигивающий Кинь кусочек плиз - посмотреть для общего развития ...
Записан
shaft_s
Гость
« Ответ #12 : Сентябрь 29, 2007, 22:01 »

на si2000 и ewsd точно есть а на каких советских точно не помню.
http://slil.ru/24915280
Записан
Вячеслав
Гость
« Ответ #13 : Сентябрь 29, 2007, 22:20 »

на si2000 и ewsd точно есть а на каких советских точно не помню.
http://slil.ru/24915280
Гы  Непонимающий Непонимающий Непонимающий Смеющийся Смеющийся А советские-то причем !? Не поминай всуе ... После неадекватного секса на работе с изделиями П-443/444/409 словосочетание "отечественная телефонная станция" вызывает дикий приступ ржача Грустный

Мдя накрутили ребята .... А просто скинуть как все нормальные люди в varrec немогли Подмигивающий Собсвенно по теме - формат расписан, конверторы в текст есть какие грабли ? Подмигивающий
« Последнее редактирование: Сентябрь 29, 2007, 22:52 от Вячеслав » Записан
shaft_s
Гость
« Ответ #14 : Сентябрь 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/
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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