внёс поправочку. в расширениях символ * не нужен.
Да я знаю.
не просто проверяет соответсвие строк (filename='*.jpg' or filename=*.gif), а разбирает маску, и смотрит соответствие имени файла маске.
Смотри пример реализации выше, там так реализовано т.к. потом в кейсе смотреть удобнее по форматам.
Т.е. скрытого кода за таким сравнением наворочена уйма. и об его эффективности (и правильности) можно судить, только смотря в ассемблерный код.
От чего и хочу линять с делфи, т.к. модули растут и растут и порой делая тривиальные вещи получаеш не тривиальные размерчики файлов =/ ...
так работая с одним модулем мультимедийный проекте добавление его в uses приводило прыжок размера Exe файла на 10мб =/, а при последующих расширениях возможностей размеры просто ужасали =( ...
вчера скачал лазарь и в принципе пока устраивает - особенно то что никто не норовит всю систему засунуть в один *.dcu файл =)
да и размеры exe файлов уже ближе к истине начинают быть похожи =)
еще бы найти реализацию KOL (зеркальных классов)
А и еще вернусь к filename in ['*.jpg', '*.gif']
я в принципе не говорил что он все проверит меня просто смутило что лазарь отказывается проверять вхождение во множество строковых значений, большего и не нужно. а изменить в принципе можно было вот так.
- Код: Выделить всё
if (LowerCase(ExtractFileExt(SR.Name)) in ['.gif','.png','.jpg'] ) then ...
просто досадно что подобная проверка не прокатывает и нужно ухищряться.