Название: QRegExp проверка расширения[РЕШЕНО] Отправлено: Zeka13 от Март 22, 2012, 12:06 Доброго времени суток, снова нуждаюсь в помощи форума
В *nix системах папки могут называться начиная с ., да и вообще . может быть в любом месте названия папки Хочу через QRegExp проверить, есть ли у файла расширение plot(проверяю строку разумеется), сам только вот что придумал Код
Примеры "/home/zeka/ggg.plot/kk" Должно быть:нет совпадения / С моим регепсом: есть совпадение "/home/zeka/.plot/kk" Должно быть:нет совпадения / С моим регепсом: нет совпадения "/home/zeka/plot/kk.plot" Должно быть:есть совпадение / С моим регепсом: есть совпадение Возможно вообще что-то придумать? Заранее спасибо Название: Re: QRegExp проверка расширения Отправлено: Alex Custov от Март 22, 2012, 12:09 Через QFileInfo бери только имя файла, и его уже прогоняй через regexp.
Название: Re: QRegExp проверка расширения Отправлено: mutineer от Март 22, 2012, 12:10 QRegExp rx("[^/]\\.plot$");
попробуй так Название: Re: QRegExp проверка расширения Отправлено: V1KT0P от Март 22, 2012, 12:12 Доброго времени суток, снова нуждаюсь в помощи форума Два способа:В *nix системах папки могут называться начиная с ., да и вообще . может быть в любом месте названия папки Хочу через QRegExp проверить, есть ли у файла расширение plot(проверяю строку разумеется), сам только вот что придумал Код
Примеры "/home/zeka/ggg.plot/kk" Должно быть:нет совпадения / С моим регепсом: есть совпадение "/home/zeka/.plot/kk" Должно быть:нет совпадения / С моим регепсом: нет совпадения "/home/zeka/plot/kk.plot" Должно быть:есть совпадение / С моим регепсом: есть совпадение Возможно вообще что-то придумать? Заранее спасибо Код: QRegExp rx("*.plot", Qt::CaseInsensitive, QRegExp::Wildcard); Код: QString::endsWith(".plot", Qt::CaseInsensitive); Название: Re: QRegExp проверка расширения Отправлено: kambala от Март 22, 2012, 12:56 а что плохого в QFileInfo(fileName).suffix() == "plot" ?
Название: Re: QRegExp проверка расширения Отправлено: Zeka13 от Март 22, 2012, 13:41 спасибо всем, кто ответил, первое же решение подошло
Код правда можно тогда упростить до QRegExp rx("\\.plot$"); Очень стыдно, что пропустил этот шаблонный символ в Шлее! Так что извиняюсь! QFileInfo мне не подходит, так как я файл сохраняю, ну не существует его на момент проверки, не достаточно точно описал задачу, опять таки извиняюсь ещё раз спасибо Название: Re: QRegExp проверка расширения[РЕШЕНО] Отправлено: Igors от Март 22, 2012, 14:22 1) Перестаньте извиняться по всякому поводу, вежливость тоже должна быть в меру
2) Блокировка темы - конечно Ваше личное дело, но впечатление производит неприятное, типа "нажрался и отвалил" 3) Чем меньше Вы будете забивать себе голову шлеями и жасминами - тем лучше. Это не программирование а так, "красивая обертка". Возможно принятое решение будет работать и делать все что нужно, но оно плохо потому что неадекватно, не соответствует задаче. Вам надо без затей проверить суффикс, ну и делайте это ф-цией endsWith, которая именно для этого и предназначена. Неплохо и QString::right. Вместо этого Вы привлекаете "супер-тул", видимо полагая что "чем больше наворочено - тем лучше, круче". Но все как раз наоборот :) Название: Re: QRegExp проверка расширения[РЕШЕНО] Отправлено: Zeka13 от Март 22, 2012, 16:01 Хорошо, больше не буду блокировать темы, а вот извиняться буду сколько захочу.
Я делал так, как умею, вашими способами я не умею... Мне опытный программист посоветовал Шлее, так что наверное я его всё-таки дочитаю |