Текущий архив: 2004.04.18;
Скачать: CL | DM;
ВнизТЕКСТ Найти похожие ветки
← →
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;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.228 c