![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Условие на расширение открываемого файла [D7, WinXP]
Egoor © (2010-07-05 15:31:00)Здравствуйте. Я делаю просмоторщик текстовых фалов и картинок. Задаю условие:
with OpenDialog1 do
if Execute then
begin
if OpenDialog1.FileName='*.jpg' then
ShowMessage('Картинка');
end
Но ничего не работает. ShowMessage - это для примера. При открытии OpenDialog ставиться одно возможное расширение открываемого файла - .jpg. Как исправить? Надо, еасли это текст открыть, а если картинка показать ShowMessage
Dennis I. Komarov (2010-07-06 15:31:00) [1]
> Deltas © (06.07.10 15:23) [15]
С чего бы?
Deltas (2010-07-06 15:23:00) [2]То, что в данном случае, внутренний формат файла не важен. Проверка только по расширению.
Dennis I. Komarov (2010-07-06 15:08:00) [3]
> Deltas © (06.07.10 14:50) [13]
Посмотрел, и что?
Deltas (2010-07-06 14:50:00) [4]
> Dennis I. Komarov © (06.07.10 13:58) [11]
А теперь посмотрите на название ветки: "Условие на расширение открываемого файла".
Разумеется, расширение не гарантирует, что файл содержит данные в соответствующем формате.
Демо (2010-07-06 14:10:00) [5]
> Egoor (05.07.10 15:31
Используй функцию проверки по маске - MatchesMask
Dennis I. Komarov (2010-07-06 13:58:00) [6]
> С чего Вы взяли? Ведь перед этим могло быть
> ren music.mp3 picture.jpg
Да потому что это мой picture.jpg. Что захочу, то туда и нарисую...
Сей пост лишь показывает, что расширение файла никак не отвечает 100% за свое содержание...
> Кстати, скажу по секрету, картинок вообще не сущесвует,
> существуют только последовательности байт, организованные
> в виде файла. А картинка это или не картинка - все зависит
> от того, как эту последовательность байт обрабатывать.
Под картинками подразумевается последовательность байт в определенном, общепринятом, документированном формате(ах)... Зачем нам этот секрет?
Deltas (2010-07-06 13:37:00) [7]
> Dennis I. Komarov © (06.07.10 12:39) [9]
> ren picture.jpg document.doc
> И все же это картинка...
С чего Вы взяли? Ведь перед этим могло быть
ren music.mp3 picture.jpg
Какая же это картинка?
Кстати, скажу по секрету, картинок вообще не сущесвует, существуют только последовательности байт, организованные в виде файла. А картинка это или не картинка - все зависит от того, как эту последовательность байт обрабатывать.
Dennis I. Komarov (2010-07-06 12:39:00) [8]ren picture.jpg document.doc
И все же это картинка...
antonn (2010-07-06 12:13:00) [9]
> > if pos('.jpg',OpenDialog1.FileName) <> 0 then
> > ShowMessage('Возможно картинка');
if pos('['+ansilowercase(extractfileext(OpenDialog1.FileName))+']','[.jpg][.bmp][.png]') <> 0 then
=)
Anatoly Podgoretsky (2010-07-06 12:05:00) [10]> Deltas (06.07.2010 11:41:06) [6]
Ну если упрощать то до предела
ShowMessage('Возможно картинка');
Deltas (2010-07-06 11:41:00) [11]
> 12 © (06.07.10 08:33) [5]
> > ShowMessage(' Возможнокартинка');
Тогда, предлагаю упростить алгоритм :)
If Execute then
ShowMessage('Возможно картинка');
12 (2010-07-06 08:33:00) [12]
> ShowMessage(' Возможнокартинка');
Deltas (2010-07-05 19:12:00) [13]
> 12 © (05.07.10 15:43) [2]
> > if Execute then
> > begin
> > if pos('.jpg',OpenDialog1.FileName) <> 0 then
> > ShowMessage('Возможно картинка');
А если OpenDialog1.FileName = Некартинка.jpg.txt?
12 (2010-07-05 15:45:00) [14]> При открытии OpenDialog ставиться одно возможное расширение
> открываемого файла
OpenDialog1.Filter := '*.txt; *.bmp';
if openDialog1.Execute
{RASkov} (2010-07-05 15:43:00) [15]> [0] Egoor (05.07.10 15:31)
> if OpenDialog1.FileName='*.jpg' then
Условие не сработает, потому как файла с таким именем не будет.
Тут звездочка и вопрос не работают... Есть отдельные методы(модули) например masks...
но можно и такой вариант:
if Execute then
begin
if AnsiLowerCase(ExtractFileExt(FileName))='.jpg' then
ShowMessage('Файл с расширением jpg');
12 (2010-07-05 15:43:00) [16]> if Execute then
> begin
> if pos('.jpg',OpenDialog1.FileName) <> 0 then
> ShowMessage('Возможно картинка');