delphi4arab منتديات دلفي للعرب
[Unit] uRecord - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : مصادر دلفي مفتوحة تعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=14)
+--- الموضوع : [Unit] uRecord (/showthread.php?tid=9666)



[Unit] uRecord - Agmcz - 14-08-2018

السلام عليكم ورحمة الله وبركاته
وحدة للتعامل مع 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 



RE: [Unit] uRecord - mohamed49 - 17-08-2018

بارك الله فيك