• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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 рисунков в базу данных. Конечноєто просто преобразование, но я щас попробую и с другими форматами поработать.
Тема закрыта.
 
Мы в соцсетях:

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