delphi4arab منتديات دلفي للعرب

نسخة كاملة : [Unit] uRecord
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
وحدة للتعامل مع Record أو لنقل الهياكل أو Structs في الذاكرة
العمل الأساسي للدوال التي في الوحدة كتابة محتوي Record بشكل تسلسلي مع إمكانية إرجاعها
إلى الوضع الذي يتبعه Delphi Compiler
مع دعم String, Dynamic Array والعديد...

كتبت الوحدة سابقا لمشروع خاص لتسهيل كتابة وقراءة البيانات من وعلى القرص

مثال:
PHP كود :
type
  TMyRecord 
= packed record
    Str
: string;
 
   Int: Integer;
 
 end;

procedure TForm1.Button1Click(Sender: TObject);
var
 
 MyRecord: TMyRecord;
 
 FS: TFileStream;
 
 TypData: TTypData;
begin
  MyRecord
.Str := Edit1.Text;
 
 MyRecord.Int := StrToInt(Edit2.Text);
 
 RecordToArray(@TypData, @MyRecord, [tiString, tiInteger], [0]);
 
 FS := TFileStream.Create('Settings.dat', fmCreate or fmOpenWrite);
 
 try
    FS
.Write(TypData.Data^, TypData.DataSize)
 
 finally
    FS
.Free;
 
 end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 
 MyRecord: TMyRecord;
 
 MS: TMemoryStream;
begin
  MS 
:= TMemoryStream.Create;
 
 try
    MS
.LoadFromFile('Settings.dat');
 
   ArrayToRecord(@MyRecord, MS.Memory, [tiString, tiInteger], [0]);
 
   Edit3.Text := MyRecord.Str;
 
   Edit4.Text := IntToStr(MyRecord.Int);
 
 finally
    MS
.Free;
 
 end;
end; 

يمكن التحميل من Github أو المرفقات

PHP كود :
https://github.com/Agmcz/Record2Array 
بارك الله فيك