Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

ТЕКСТ   Найти похожие ветки 

 
010101001010001010101001   (2004-03-31 14:40) [0]

Мне нужно решить вот такую задачу:
var
ext: string;
begin
ext := extractfileext(opendialog.filename)
if ext = ".bmp" then image.picture.loadfromfile(opendialog.filename);

Но разширение файла может быть написанно и .BMP И .bMp
Я вижу три решения задачи:
1. Переобразовать все большие буквы разширения на маленькие
2. Заставить мою программу "Забивать" на регистр.
3. Прописать все возможные разширения: ".bmp",".Bmp".".BMp"
Третий вариант меня не устариивает, а первые два я реализовать не могу. Уважаемые мастера, помогите пожалуйста мне с каким нибудь варианом!


 
Ega23 ©   (2004-03-31 14:43) [1]

if UpperCase(ext)="BMP" then ....

Но это цветочки. Вот если я mp3-файл в bmp переимную, то что будешь делать?  :о)


 
han_malign ©   (2004-03-31 14:43) [2]

(UpperCase(ext)=".BMP")

(AnsiCompareText(ext,".bmp")=0)


 
010101001010001010101001   (2004-03-31 14:44) [3]

Спасибо!


 
han_malign ©   (2004-03-31 14:46) [4]

до кучи :))
(LowerCase(ext)=".bmp")


 
010101001010001010101001   (2004-03-31 14:46) [5]

(AnsiCompareText(ext,".bmp")=0)
это куда вставлять?


 
han_malign ©   (2004-03-31 14:47) [6]

if(AnsiCompareText(ext,".bmp")=0)then ...

AnsiCompareText compares S1 to S2, without case sensitivity. The compare operation is controlled by the current locale. AnsiCompareText returns a value less than 0 if S1 < S2, a value greater than 0 if S1 > S2, and returns 0 if S1 = S2.


 
010101001010001010101001   (2004-03-31 14:50) [7]

Во всех ваших вариантах, что вы говорили проихдожит тоже что при
if ext = ".bmp" then
Тож если запустить файл ".BMP", то ничего не произойдет!!!


 
Ega23 ©   (2004-03-31 14:53) [8]

Тебе надо не по расширению проверять, а по первым 3-м байтам, что-то типа
function GetGraphicFormat(const FileName:String):TGraphicFormat;
var
Buffer: array[0..2] of Byte;
fs:TFileStream;
begin
Result:=gfUnknown;
try
  fs:=TFileStream.Create(FileName,fmOpenRead);
  fs.ReadBuffer(Buffer, 3);
  if (Buffer[0] = $49) and (Buffer[1] = $49) and (Buffer[2] = $2A) then Result:=gfTIFF;
  if (Buffer[0] = $42) and (Buffer[1] = $4D) then Result:=gfBMP;
  if (Buffer[0] = $FF) and (Buffer[1] = $D8) then Result:=gfJPEG;
  if (Buffer[0] = $47) and (Buffer[1] = $49) and (Buffer[2] = $46) then Result:=gfGIF;
finally
  fs.Free;
end;
end;


 
010101001010001010101001   (2004-03-31 15:02) [9]

не... не то, нужно именно по разширениям!
Так почему у меня не работатют примеры?


 
Ega23 ©   (2004-03-31 15:05) [10]

точку убери


 
010101001010001010101001   (2004-03-31 15:06) [11]

ок


 
Romkin ©   (2004-03-31 15:07) [12]

> 54A2A9H

if ansiCompareText(ext,  ".bmp") = 0 then    
 image.picture.loadfromfile(opendialog.filename);

Не пробовал?


 
010101001010001010101001   (2004-03-31 15:08) [13]

ВСЕ РАВНО НЕ РАБОТЕАТ!!!


 
010101001010001010101001   (2004-03-31 15:12) [14]

Все, разобрался! РАБОТАЕТ!


 
Digitman ©   (2004-03-31 15:26) [15]

"з" убери из слова "раЗширение"



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
14-1080541526
noname
2004-03-29 10:25
2004.04.18
компиляция


1-1080356184
новичок_из_сыктывкара
2004-03-27 05:56
2004.04.18
ascii код backspace


8-1072379579
Eagle Owl
2003-12-25 22:12
2004.04.18
Формат mp3...


7-1076588783
h0use
2004-02-12 15:26
2004.04.18
Определение типа ОС


3-1079591866
ceval
2004-03-18 09:37
2004.04.18
при нажатии кнопки появлялась форма для поиска





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский