crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Фильтр каталогов на RegExp'ах
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 30.10.2008, 6:52
 
Цитата(smooky @ 30.10.2008, 4:57) *
strFilters << "^\\d?$"; // (нерабочее...) вот тут какое выражение надо написать?
dir.setNameFilters(strFilters);
тут у тебя ошибка, методы:
void QDir::setNameFilters ( const QStringList & nameFilters )
QStringList QDir::entryList ( const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort ) const

не принимают регулярок. А только wildcards - символы подстановки (* ? и т.п.)


я не проверял, но думаю такое выражение должно удовлетворить твоему условию: [1234567890]
тогда получается так:
QDir        dir("/mydir");
QStringList    strFilters;
QStringList    dirList;

    strFilters << "[1234567890]";
    
    dir.setFilter(QDir::NoDotAndDotDot | QDir::NoSymLinks | QDir::Dirs);
    dir.setSorting(QDir::Name);
    dir.setNameFilters(strFilters);
    
    dirList = dir.entryList();


P.S. установка списка в строке
Цитата(smooky @ 30.10.2008, 4:57) *
dir.entryList(strFilters);

это лишнее т.к. ты уже задал фильтр имен в функции setNameFilters
smooky Дата 30.10.2008, 1:57
  // в дире нужны все поддиры которые в имени имеют хотя бы одну цифру или всё имя состоит из цифр
QDir dir("/mydir");
dir.setFilter(QDir::NoDotAndDotDot | QDir::NoSymLinks | QDir::Dirs);
dir.setSorting(QDir::Name);
QStringList strFilters;
strFilters << "^\\d?$"; // (нерабочее...) вот тут какое выражение надо написать?
dir.setNameFilters(strFilters);
QStringList dirList = dir.entryList(strFilters);
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 5.6.2020, 13:13