هدر فايل قسمتي از فايل است که در کليه اطلاعات راجع به فايل قرار داده شده
مثلا براي يه فايل Bmp ::: نوع رنگ-نام فايل - نوع فايل
Printable View
هدر فايل قسمتي از فايل است که در کليه اطلاعات راجع به فايل قرار داده شده
مثلا براي يه فايل Bmp ::: نوع رنگ-نام فايل - نوع فايل
سلام
فایل رو به صورت Binary باز کن.
یعنی مثلاً F:file of Byte
بعد میتونی بایت به بایت به Header File و کلیه قسمت های فایل دسترسی داشه باشی.
البته لازمه فرمت فایل رو کاملاً بشناسی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
موفق باشی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
يه مثال و يه راهنمايي بيشتر ميکني که چجوري ميشه اون اطلاعات رو گرفت و تغيير داد؟
سلام
واضحه که باید چه کار بکنی! [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اول از همه باید فرمت هدرفایل یه نوع فایل خاص مثلاً تصاویر BMP رو داشته باشی.(بگردی پیدا میشه [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] )
بعد از روی اون اطلاعات می تونی بفهمی که در بایت مثلاً شماره x از فایل چه اطلاعاتی ذخیره شده؛بعد می تونی اون رو بخونی (با Read) یا تغییر بدی(با Write)! [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مثال:
در یک تصویر Bitmap ، از بایت شماره 02h (مبنای شانزده Hex) به طول 4 بایت (dword) اندازه تصویر برحسب بایت ذخیره شده است.برای دسترسی به سایز عکس از دستورات زیر استفاده می کنیم:
فقط دقت کنید که بایت ها در هدرفایل به ترتیب عکس قرار میگیرند برای همین ارزش مکانی b4 از همه بیشتره.کد:var
f:file of Byte;
b:array[1..5]of byte;
x:integer;
begin
assignfile(f,'C:\File.bmp');
reset(f);
seek(f,$2); //Hex 0x02
read(f,b[1]);
read(f,b[2]);
read(f,b[3]);
read(f,b[4]);
closefile(f);
x:=b[1]+ b[2]*256 + b[3]*256*256 + b[4]*256*256*256 ;
Edit1.Text:=IntToStr(x);
end;
اگه خواستی مقداری رو توی هدرفایل تغییر بدی کافیه با دستور Seek اشاره گر فایل رو به آفست (شماره بایت) مورد نظر ببری و بعد با دستور write جند بایت داده جدید رو اونجا بنویسی.فقط دقت کن فایل های مهم رو خراب نکنی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]