crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 23:54