• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Узнать расширение

  • Автор темы niello
  • Дата начала
N

niello

Как узнать расширение файла открытого из OpenDialog1?
У меня есть OpenDialog1, и два расширения(*.bmp, *.jpg)

begin
if OpenDialog1.Execute then
begin
if (расширение*.jpg) then (Действие1)
Else Действие2
end;
end;
 
N

niello

//этот код должен вносить в базу рисунок Jpeg предварительно его перевев в формат *.bmp но что-то не идет. Где ошибка.

Код:
procedure TForm2.N1Click(Sender: TObject);
var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
if OpenDialog1.Execute then
begin
AdoTable1.Edit;
AdoTable1.Append;


if ExtractFileExt(OpenDialog1.FileName)='.jpeg' then//тут я правильно использую условие?
begin
jpeg := TJPEGImage.Create;
try
jpeg.CompressionQuality := 100; //Default Value
jpeg.LoadFromFile(OpenDialog1.FileName);
bmp := TBitmap.Create;
try
bmp.Assign(jpeg);
bmp.SaveTofile(ChangeFileExt(OpenDialog1.FileName, '.bmp' ));
finally;
bmp.Free
end;
finally;
jpeg.Free
end;

AdoTable1Picture.LoadFromFile(ChangeFileExt(OpenDialog1.FileName, '.bmp' ));
AdoTable1.Post;
DeleteFile(ChangeFileExt(OpenDialog1.FileName, '.bmp' ));//удаляю *.bmp'
end

else
AdoTable1Picture.LoadFromFile(OpenDialog1.FileName);
AdoTable1.Post;
end;
end;
 
B

Barmutik

ЧТо конкретно не идёт ? В чём ошибка ? Приведите .. а то гадать на кофейной гуще как-то ...
 
N

niello

Спасибо! Сел, подумал и нашел ошибку. Сначала посмотрел где меня выбивает и понял что выбивает на
AdoTable1.Post;
//конечном. А значит оно не идет по моей ветке. Или
else
AdoTable1Picture.LoadFromFile(OpenDialog1.FileName);
AdoTable1.Post;
end;
Не правильно, так как надо после елса взять 2 действия в begin end;
Но я решил еще чуточку изменить:
Код:
procedure TForm2.N1Click(Sender: TObject);
var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
if OpenDialog1.Execute then
begin
AdoTable1.Edit;
AdoTable1.Append;
if ExtractFileExt(OpenDialog1.FileName)='.bmp' then
begin
AdoTable1Picture.LoadFromFile(OpenDialog1.FileName);
AdoTable1.Post;
end
//if ExtractFileExt(OpenDialog1.FileName)='.jpg' then
else
begin
jpeg := TJPEGImage.Create;
try
jpeg.CompressionQuality := 100; //Default Value
jpeg.LoadFromFile(OpenDialog1.FileName);
bmp := TBitmap.Create;
try
bmp.Assign(jpeg);
bmp.SaveTofile(ChangeFileExt(OpenDialog1.FileName, '.bmp' ));
finally;
bmp.Free
end;
finally;
jpeg.Free
end;
AdoTable1Picture.LoadFromFile(ChangeFileExt(OpenDialog1.FileName, '.bmp' ));
AdoTable1.Post;
DeleteFile(ChangeFileExt(OpenDialog1.FileName, '.bmp' ));
end
{else
begin
AdoTable1Picture.LoadFromFile(OpenDialog1.FileName);
AdoTable1.Post;
end;}
end;
end;
То есть я проверяю условие bmp это или нет, и не парюсь.
Там взято в контекст то что я изменил.
Полуилось.
Теперь этот код можно исрользовать для вставки jpeg рисунков в базу данных. Конечноєто просто преобразование, но я щас попробую и с другими форматами поработать.
Тема закрыта.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!