الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار عن كيفية تحديد نوع الملف

مغلق
بدأه عنيزة في 11 ديسمبر 2001 · 1 رد · 521 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كيف اقوم بتحديد نوع الملف اذا كان من نوع JPG مثلا يقوم بعمل كذا

if (FILE_TYPE= JPG) then

begin

....

end

مع التأكد من صحة نوع الملف فقد يقوم المستخدم بإعادة تسمية ملف من نوع اخر ويضع امتداده JPG فيسبب مشاكل في برنامجك . ولذلك اريد من برنامجي ان يقوم بإظهار الخطأ وليس من النظام ويقوم بنهاء عمل البرنامج اجباريا بعد ذلك Terminate

#2

السلام عليكم

تتميز ملفات Jpeg/JFIF بـ header ثابت وهو أول 2 بايت في الملف حيث يجب أن يكون أول بايت في الملف $FF والثاني $D8

وهذه داله بسيطة لمعرفة هل الملف من هذا النوع أم لا

function IsJpegFile(const FName:string):boolean;
var f : file of byte;
    a,b: byte;
begin
        AssignFile(f,FName);
        Reset(f );
        Read(f,a,B);
        if (a=$FF) and (b=$D8) then
           Result := true
        else Result := false;
        CloseFile(f );
end;

لاحظ انه يفحص فقط الهيدر مع العلم انه ايضاً يوجد لهذه الملفات trailer مميز لابد أن تنتهي به وهو $FF و $D9

تحياتي لك ،،،

هذا الموضوع مغلق.

مواضيع مشابهة