View Full Version : ويرايش فايلهاي باينري
rezamahdizadeh
دوشنبه 01 شهریور 1389, 05:46 صبح
اگر بخواهيم يک فايل باينري را به منظور تغييراتي در ان باز کنيم و بايت خاصي مثلا بايت هفتم يک فايل باينري را خواند و در آن بايت نوشت چه کار کنيم؟
BORHAN TEC
دوشنبه 01 شهریور 1389, 17:43 عصر
به مثال زیر توجه کنید:
var
F: file of Byte;
I : Byte;
begin
Assign(F, 'c:\BinaryFile.dat');
Reset(F);
Seek(F, 7);
Read(F, I);
ShowMessage(IntToStr(I));
Seek(F, 7);
I:=255;
Write(F,I);
Close(F);
end;
vcldeveloper
دوشنبه 01 شهریور 1389, 18:57 عصر
const
BuffSize = 7;
var
FileName : TFileName;
FStream : TFileStream;
Buff : TBytes;
begin
FileName := 'C:\Test.dll';
FStream := TFileStream.Create(FileName,fmOpenReadWrite, fmShareExclusive);
try
SetLength(Buff,BuffSize);
FStream.Read(Buff[0],SizeOf(Buff));
/// Change buffer here
FStream.Write(Buff[0],SizeOf(Buff));
finally
FStream.Free;
end;
end;
rezamahdizadeh
دوشنبه 01 شهریور 1389, 22:18 عصر
اگر اين فايل باينري يک فيلم در حدود 20 مگابايت باشد و بخواهيم بعد از اعمال تغييرات روي فايل اوليه، روي هارد ذخيره نشود و مستقيم به يک ActiveX ويندوز مديا پلير در فرم بدهيم ايا امکان آن وجود دارد؟ آيا مي شود تغييرات را به صورت Stream تبديل کرد و با نوشتن کد به ويندوز مديا پلير داد؟
vcldeveloper
سه شنبه 02 شهریور 1389, 01:00 صبح
آيا مي شود تغييرات را به صورت Stream تبديل کرد
مگه در کد بالا از Stream استفاده نشده؟!
بخواهيم بعد از اعمال تغييرات روي فايل اوليه، روي هارد ذخيره نشود
به جای FileStream از MemoryStream و متد LoadFromFile آن استفاده کنید.
و با نوشتن کد به ويندوز مديا پلير داد؟
اون دیگه به مدیا پلیر مربوط میشه که آیا همچین داده ایی رو به این شکل تحویل میگیره یا نه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.