Выше я.
Этот топик читают: Гость
Ответов: 824
Рейтинг: 138
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): ... вот, кстати, метод, который из строки делает список
Он некорректно работает с русскими буквами. Точнее - вообще не знает про них. Корректно работает Виндячий. Но он может попортить не только то, чего ты хочешь... Но и не понять какой оригинал строки. Стоит возиться, или нет |
|||
карма: 9 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А зачем возиться - изменить обе на AnsiLowerCase. Даже с "Ё" никаких проблем.
Tad писал(а): Из каталога в котором подкаталогов 1271 и файлов 23283 отобрало 150 файлов за 930 ms Почему отрабатывает быстрее, чем с LowerCase - непонятно. Для прикола запустил с AnsiLowerCase на компе внука с ивритским Windows Каталогов 38552, файлов 362105. Отобрало файлов 1673 (по расширениям на моей картинке выше) за 16250 ms Там есть названия на иврите, арабском, русском и английском. |
|||
карма: 25 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Galkov писал(а): Он некорректно работает с русскими буквамиА что, бывают расширения на кириллице, вот уж никогда не встречал |
|||
карма: 22 |
| ||
Голосовали: | Tad |
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
|
Ответов: 2059
Рейтинг: 132
|
|||
nesco писал(а): А что, бывают расширения на кириллице, вот уж никогда не встречал*Головачев* *Golovachev* *Головачёв* *Golovachyov* А расширение любое. |
|||
карма: 6 |
|
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
flint2, это вообще-то не расширение файла, а его имя. Но согласен, что в маске могут присутствовать кириллические символы, если надо найти по части имени. Но вот тут всплывает недочет основного автора компонента, тк свойство обозначено как именно расширение
Вот если бы это свойство изначально называлось Mask -- маска поиска файлов, то никаких разночтений не возникало бы. |
|||
карма: 22 |
|
Ответов: 2059
Рейтинг: 132
|
|||
это вообще-то не расширение файла, а его имя. Тык я об чём. Не расширением единым. уже недокументированная фича. Формально -Да, по сути нет. Вот если бы это свойство изначально называлось Mask По коду и так понятно. Зовите меня просто - Mask |
|||
карма: 6 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Поправка: LowerCase -- это KOL-овская фишка (а не Дельфячая)
В общем, если делать "по правильному", то будет примерно так: (см аттач) Смотрите, думайте: стоит оно того, или нет ... |
|||
карма: 9 |
| ||
файлы: 1 | hifilesearch_lc.rar [1.8KB] [316] |
Разработчик
Ответов: 26149
Рейтинг: 2127
|
|||
Galkov писал(а): Смотрите, думайте: стоит оно того, или нет ...А че вторую функцию LowerCase убрал, она что, не нужна? Те cFileName уже приведен к нижнему регистру, получается? |
|||
карма: 22 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Работает шустро.
Но было бы правильно при _prop_Include = Dirs и All директории тоже фильтровались, а не выводились все подряд. И только при _prop_Ext (и Ext) = '*' выводились все подряд. Очень часто надо найти папку и приходится городить огород. + Нужна точка для внешнего задания значений _prop_Include. Это лучше, чем дублировать компонент в схеме с другим значением. |
|||
карма: 6 |
|
Ответов: 9906
Рейтинг: 351
|
|||
nesco писал(а): А че вторую функцию LowerCase убрал, она что, не нужна?Не убирал. А запихнул внутрь multiCmp эти пляски с бубном ------------ Дoбавленo в 14.28: flint2 писал(а): Но было бы правильно при _prop_Include = Dirs и All директории тоже фильтровалисьВ общем-то -- ДА. Но это нарушение обратной совместимости. Хотя, и ничего сложного: if (_prop_Include > 0) and multiCmp(FindData.cFileName) then OutFiles(Dir,FindData.cFileName); |
|||
карма: 9 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Galkov, а мне кажется, что при '*' по умолчанию совместимость полная, или мне кажется?
А ещё одна точка "Include" на совместимость вообще не влияет. |
|||
карма: 6 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А если нужно отдельно найти файлы с расширением *.TXT, *.txt, *.Txt, *.tXt, *.txT
Т.Е. с учетом регистра. |
|||
карма: 25 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Tad, С расширением не тот случай, когда лучше перебдеть, чем недобдеть.
Регистр расширения никак не может быть препятствием в взаимоотношениях. |
|||
карма: 6 |
|