Показать сообщение отдельно
  #4  
Старый 03.01.2012, 21:30
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Я проверяю так:
Код:
type
  TTypeFile		= (tfBMP, tfICON, tfCURSOR, tfWAVE, tfMIDI, 
			   tfHUC, tfJPG,  tfGIF,    tfTIF,  tfMO3, 
			   tfPNG, tfPCX,  tfUnknown);
const
  THeaderFile		: array[0..11, 0..6] of Byte = (
  {BMP}			($42, $4D,   0,   0,   0,   0, 2),
  {ICON}  		(  0,   0,   1,   0,   0,   0, 4),
  {CURSOR}		(  0,   0,   2,   0,   0,   0, 4),
  {WAVE}		($52, $49, $46, $46,   0,   0, 4),
  {MIDI}		($4D, $54, $68, $64,   0,   0, 4),
  {HUC}			($48, $55, $43,   0,   0,   0, 3),
  {JPG}			($FF, $D8, $FF,   0,   0,   0, 3),
  {GIF}			($47, $49, $46, $38,   0,   0, 4),
  {TIF}			($49, $49, $2A, $00,   0,   0, 4),
  {MO3}			($4D, $4F, $33, $04,   0,   0, 4),
  {PNG}			($89, $50, $4E, $47, $0D, $0A, 6),
  {PCX}			($0A, $05,   0,   0,   0,   0, 2));

function CheckTypeFile(P : Pointer) : TTypeFile;
var
  I	: Integer;
begin
  Result := tfUnknown;
  for I := Low(THeaderFile) to High(THeaderFile) do
    if CompareMem(P, @THeaderFile[i], THeaderFile[i][High(THeaderFile[0])]) then
    begin
      Result := TTypeFile(I);
      Break;
    end;
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием