Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2008, 20:57   #1
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию Выбор формата

Как проверить какой формат был выбран в OpenDialog-е? Например, если пользователь выбрал *.avi то воспроизвести если *.jpg то вставить в Image.
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 30.12.2008, 21:05   #2
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

if AnsiLowerCase(ExtractFileExt(OpenDi alog1.FileName)) = '.jpg' then ...
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 30.12.2008, 21:34   #3
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

а если несколько форматов jpg,gif,bmp.. то как проверить
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 30.12.2008, 21:37   #4
UnD)eaD)Snake
Форумчанин Подтвердите свой е-майл
 
Аватар для UnD)eaD)Snake
 
Регистрация: 07.07.2007
Сообщений: 241
По умолчанию

Цитата:
Сообщение от Volt Посмотреть сообщение
а если несколько форматов jpg,gif,bmp.. то как проверить
if AnsiLowerCase(ExtractFileExt(OpenDi alog1.FileName) ) = '.jpg' then ... else
if AnsiLowerCase(ExtractFileExt(OpenDi alog1.FileName) ) = '.avi' then ... else
if AnsiLowerCase(ExtractFileExt(OpenDi alog1.FileName) ) = '.txt' then ... else ...

UnD)eaD)Snake вне форума Ответить с цитированием
Старый 30.12.2008, 21:40   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Я использую SysUtils.SameText он быстрей будет чем через LowerCase() = ... так к сведению
BOBAH13 вне форума Ответить с цитированием
Старый 30.12.2008, 21:41   #6
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

Нуу это понятно но проверять каждый это какой-то идиатизм
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]
Volt вне форума Ответить с цитированием
Старый 30.12.2008, 22:07   #7
UnD)eaD)Snake
Форумчанин Подтвердите свой е-майл
 
Аватар для UnD)eaD)Snake
 
Регистрация: 07.07.2007
Сообщений: 241
По умолчанию

Цитата:
Сообщение от Volt Посмотреть сообщение
Нуу это понятно но проверять каждый это какой-то идиатизм
как же иначе?
UnD)eaD)Snake вне форума Ответить с цитированием
Старый 30.12.2008, 22:20   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну, можно еще по массиву с расширениями в цикле пройтись, тогда будет цикличный идиотизм =)
Или использовать классы Дельфи типа TStrings (TStringList), и встроенными методами искать совпадения, это уже объектно ориентированный идиотизм =)

Все равно разные действия прописывать нужно для разных файлов, так что сильно уменьшить код не выйдет в любом случае.

Кстати, UnD)eaD)Snake предложил оптимизированный подход, используется else для исключения лишних проверок, если еще добавить то, о чем сказал Вован13, то вообще супер оптимальный способ получается.

Ах да, чуть не забыл, переменную нужно добавить, чтобы много раз подряд одни и те же функции не вызывались
Код:
s:=AnsiLowerCase(ExtractFileExt(OpenDialog1.FileName) );
дальше все тоже самое, только уже с перменной s
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 30.12.2008 в 22:31.
mutabor вне форума Ответить с цитированием
Старый 30.12.2008, 22:28   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

множества же есть...
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 30.12.2008, 22:40   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

по моему множество может быть однобайтного типа
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
касательно формата данных Volodymyr Microsoft Office Excel 5 24.11.2008 18:03
Изменение формата DRAGGER Фриланс 6 14.10.2008 19:36
Icon-ка формата Altera Общие вопросы Delphi 1 08.04.2008 23:17
Создание своего формата AnaSha Microsoft Office Excel 1 09.01.2007 16:20