ما هي الملفات و كيف نتعامل معها ؟؟
#31
السلام عليكم ورحمة الله وبركاته

تقابلني مشكله في تحديد الادريس حيث بعد وضع الادريس المراد التعديل على القيم الخاصه به فيتم التعديل بقيم اخرى في ادريس اخر . وذلك لاني انسخ الادريس من برنامج الهيكس .

هذا الملف اجرب عليه وهو خاص بالهاردديسك وهذه الصورة تحمل العنوان المراد التعديل عليه لسهولة فهمي اريد مثال على هذه الصورة للتوضيح .

الصورة للملف 1.bin كيف يتم البحث داخله وعن اول قيمة واخر قيمة المشار اليهم بالصورة ثم نسخهم الى الملف 2.bin في نفس الادريسس .

اريد ان افهم الية التعامل مع الملفات بأمثله حتى تتضح المعلومة ,, ايضا لا يهم التطبيق على هذان الملفان لاني لا احتاجهم في عملي بل هم لعمل مثال عملي , 

اما اذا كانت هناك شرح اشمل من المطلوب فلا مشكلة .


الملفات المرفقة
.rar   BinFile.rar (الحجم : 109.79 KB / التحميلات : 5)
قل إن صلاتي ونسكي ومحياي ومماتي لله رب العالمين
الرد
#32
وعليكم السلام
هذا مثال يقوم بالمطلوب
يمكن التعليق عن أي شيء لم تفهمه
PHP كود :
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
 
 DialogsStdCtrls;

type
  TForm1 
= class(TForm)
 
   Button1TButton;
 
   procedure Button1Click(SenderTObject);
 
 private
    
{ Private declarations }
 
 public
    
{ Public declarations }
 
 end;

var
 
 Form1TForm1;

implementation

{$R *.dfm}

type
  ByteArray 
= array of Byte;

function 
read_(const FileNamestringOffsetDWORDLengthDWORDout bArrayByteArray): Integer;
var
 
 MSTMemoryStream;
begin
  MS 
:= TMemoryStream.Create;
 
 try
    MS
.LoadFromFile(FileName);
 
   MS.Position := Offset;
 
   SetLength(bArrayLength);
 
   Result := MS.Read(bArray[0], Length);
 
 finally
    MS
.Free;
 
 end;
end;

function 
write_(const FileNamestringOffsetDWORD; var bArrayByteArray): Integer;
var
 
 MSTMemoryStream;
begin
  Result 
:= 0;
 
 MS := TMemoryStream.Create;
 
 try
    MS
.LoadFromFile(FileName);
 
   MS.Position := Offset;
 
   Result := MS.Write(bArray[0], Length(bArray));
 
   MS.SaveToFile(FileName);
 
 finally
    MS
.Free;
 
 end;
end;

procedure TForm1.Button1Click(SenderTObject);
var
 
 bArrayByteArray;
begin
  read_
('1.bin', $3CC, $74bArray);
 
 write_('2.bin', $3CCbArray);
end;

end
سبحان الله وبحمده سبحان الله العظيم
الرد
#33
السلام عليكم
شكرا استاذ Agmcz جزاك الله خيرا .

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


التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 2 ضيف