Название: как определить какой фаел открыл ? Отправлено: remiznik от Июль 16, 2008, 18:41 Через окно выбора файла получаю имя файла ! надо чтоб если это фаел определенного формата выполнялась определенная функция если другая то друга ?
я понимаю что надо как-то сравнить две переменные формата QString но как это реализовать не понимаю !!! Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 16, 2008, 18:55 Как я поимаю, тип файла ты собираешься получать по его расширению, тогда нужно:
1. Почитать про класс QString для работы со строками, или 2. Почитать про класс QFileInfo Название: Re: как определить какой фаел открыл ? Отправлено: remiznik от Июль 16, 2008, 18:59 понятно что надо как-то отрезать расширение и сравнить его с заданным ??но вот как ??? может подскажите какая функция QString может это сделать ?
Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 16, 2008, 19:00 понятно что надо как-то отрезать расширение и сравнить его с заданным ??но вот как ??? может подскажите какая функция QString может это сделать ? А ты пробывал читать документацию по тем классам что я указал? Там даже примеры есть по твоему вопросу! Название: Re: как определить какой фаел открыл ? Отправлено: remiznik от Июль 16, 2008, 19:06 в Qt 3 я что-то не чего подходящего не нашел !! но я не силен в английском сейчас посмотрю ешё раз !
Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 16, 2008, 19:14 в Qt 3 я что-то не чего подходящего не нашел !! но я не силен в английском сейчас посмотрю ешё раз ! Когда постишь вопрос, нужно указывать версию Qt. Почему все должны догадываться какая версия? По теме: Используй Цитировать QString QFileInfo::extension ( bool complete = TRUE ) const Если нужно использовать QString, см. методы QString::findRev и QString::right Название: Re: как определить какой фаел открыл ? Отправлено: spirit от Июль 16, 2008, 19:16 ...
QFIleInfo fiFirst(fisrtFileName); qDebug(fiFirst.extension().ascii()); QFIleInfo fiSecond(fisrtSecondName); qDebug(fiSecond.extension().ascii()); ... вариант с QString: ... QString ext1 = fileName1.section('.', -1); QString ext2 = fileName2.section('.', -1); ... и будет тебе счастье ;) Название: Re: как определить какой фаел открыл ? Отправлено: Red Devil от Июль 16, 2008, 22:09 Код: QString GetExtensionFromFilename( const QString & sFilename ) Возможно только, не sFilename.size() - nPos, а sFilename.size() - nPos - 1, а то вместе с точкой вырежет. Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 16, 2008, 22:18 2 Red Devil: У товарища Qt3 а не Qt4
Название: Re: как определить какой фаел открыл ? Отправлено: Red Devil от Июль 16, 2008, 23:12 А в Q3 класса QString нету разве ?
Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 16, 2008, 23:52 А в Q3 класса QString нету разве ? В QString из Q3 нет lastIndexOf Название: Re: как определить какой фаел открыл ? Отправлено: Red Devil от Июль 17, 2008, 11:04 Тогда вот так :
Код: int LastIndexOf(QChar ch, const QString & sString) Название: Re: как определить какой фаел открыл ? Отправлено: Alex03 от Июль 17, 2008, 11:23 А чем QFileInfo::extension() не понравилсято?
Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 17, 2008, 12:04 Тогда вот так Блин, ну зачем изобретать велосипед? В Qt3 эквивалент lastIndexOf это findRev, и про это я уже писал. Название: Re: как определить какой фаел открыл ? Отправлено: Red Devil от Июль 17, 2008, 13:07 ну блин откуда я знал-то О_о ? Даже в assistant не написано ничего про QString и Qt 3.
Название: Re: как определить какой фаел открыл ? Отправлено: pastor от Июль 17, 2008, 13:34 ну блин откуда я знал-то О_о ? Даже в assistant не написано ничего про QString и Qt 3. Вобщето нужно смотреть в Qt3 Assistant. Но даже в Qt4 Assistant это написано: http://doc.trolltech.com/4.4/qstring-qt3.html |