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

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

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

procedure TForm1.Button1Click(SenderTObject);
var
 
 MyRecordTMyRecord;
 
 FSTFileStream;
 
 TypDataTTypData;
begin
  MyRecord
.Str := Edit1.Text;
 
 MyRecord.Int := StrToInt(Edit2.Text);
 
 RecordToArray(@TypData, @MyRecord, [tiStringtiInteger], [0]);
 
 FS := TFileStream.Create('Settings.dat'fmCreate or fmOpenWrite);
 
 try
    FS
.Write(TypData.Data^, TypData.DataSize)
 
 finally
    FS
.Free;
 
 end;
end;

procedure TForm1.Button2Click(SenderTObject);
var
 
 MyRecordTMyRecord;
 
 MSTMemoryStream;
begin
  MS 
:= TMemoryStream.Create;
 
 try
    MS
.LoadFromFile('Settings.dat');
 
   ArrayToRecord(@MyRecordMS.Memory, [tiStringtiInteger], [0]);
 
   Edit3.Text := MyRecord.Str;
 
   Edit4.Text := IntToStr(MyRecord.Int);
 
 finally
    MS
.Free;
 
 end;
end

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

PHP كود :
https://github.com/Agmcz/Record2Array 


الملفات المرفقة
.rar   uRecord.rar (الحجم : 3.4 ك ب / التحميلات : 27)
.rar   Example.rar (الحجم : 4.71 ك ب / التحميلات : 24)
سبحان الله وبحمده سبحان الله العظيم
[-] كل من 2 users say قال شكرا ل Agmcz على المشاركة المفيدة
  • محمد عبد العزيز, AX302
الرد
#2
بارك الله فيك
[-] كل من 1 user says قال شكرا ل mohamed49 على المشاركة المفيدة
  • Agmcz
الرد


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم