delphi4arab منتديات دلفي للعرب
ما هى ميزة record ؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : ما هى ميزة record ؟ (/showthread.php?tid=7415)



ما هى ميزة record ؟ - karika2 - 18-01-2016

بسم الله الرحمن الرحيم
ممكن أعرف ما هى ميزة record انا بعرف استخدمة ولكن اريد اعرف ما هى مميزاتة وهل يوجد بديل يقوم بعملة ام لا ....؟


RE: ممكن استفسار عن السجل record ...؟ - Agmcz - 18-01-2016

(18-01-2016, 04:20 PM)karika2 كتب : بسم الله الرحمن الرحيم
ممكن أعرف ما هى ميزة record انا بعرف استخدمة ولكن اريد اعرف ما هى مميزاتة وهل يوجد بديل يقوم بعملة ام لا ....؟
record أو الهياكل
في أغلب الأحيان تكون بنية لشيء ما
بنسبة لسؤالك ما هي ميزة record
كمثال عندنا إعدادات ونريد حفظها في ملف وفي وقت آخر سنحتاج تلك الإعدادات لإعادة معالجتها وحفظها مرة أخرى
هنا بإستعمال record ستكون العملية سهلة في الحفظ و تحميل.
بنسبة لسؤالك هل يوجد بديل يقوم بعملة ام لا
نعم يوجد بديل.
في برمجة دائما المسالك كثيرة لكن في الاخير الهدف واحد


RE: ممكن استفسار عن السجل record ...؟ - karika2 - 18-01-2016

بارك الله فيك أخى الكريم ,
حاولت أبحث عن أمثله لها ولكن لم أجد ولكن المعلومة وصلت أخى شكراّ لك مرة اخرى Smile


RE: ممكن استفسار عن السجل record ...؟ - Agmcz - 18-01-2016

للفائدة أكثر
هذا مثال توضيحي

PHP كود :
type
  TMyRecord 
= record
    Byt
: Byte;
 
   Int: Integer;
 
   Str: ShortString;
 
 end;
var
 
 MyRecord: TMyRecord;
 
 MS: TMemoryStream;
begin
  MS 
:= TMemoryStream.Create;
 
 try
    ZeroMemory
(@MyRecord, SizeOf(TMyRecord));
 
   MyRecord.Byt := 255;
 
   MyRecord.Int := 2016;
 
   MyRecord.Str := 'Delphi4Arab';
 
   // Save to MyFile.bin
 
   MS.WriteBuffer(MyRecord, SizeOf(TMyRecord));
 
   MS.SaveToFile('MyFile.bin');
 
   // Load from MyFile.bin
 
   ZeroMemory(@MyRecord, SizeOf(TMyRecord));
 
   MS.Clear;
 
   MS.LoadFromFile('MyFile.bin');
 
   MS.ReadBuffer(MyRecord, SizeOf(TMyRecord));
 
   // Save to MyFile2.bin
 
   MyRecord.Int := 1954;
 
   MS.Clear;
 
   MS.WriteBuffer(MyRecord, SizeOf(TMyRecord));
 
   MS.SaveToFile('MyFile2.bin');
 
 finally
    MS
.Free;
 
 end;
end; 

عرفنا الحقل TMyRecord يتكون من ثلاث متغيرات لأنواع مختلفة
قمنا بتصفير كل القيم الإفتراضية التي يحملها الحقل
بعدها ملأنا كل  الأقسام
قمنا بكتابة كل داتا الموجودة في  الحقل إلى الملف MyFile.bin
أعدنا تصفير الحقل
ثم قمنا بتحميل الملف MyFile.bin وإعادة ملأ الحقل من جديد
ثم إعادة إسناد قيمة أخرى للمتغير Int
ثم اعدنا كتابة داتا من جديد في الملف MyFile2.bin

من خلال إستعمال record نجد أنه هناك سهولة في تعامل معا هذه داتا حفظ ها وإعادة تحميلها
خاصتا إذا كانت كل متغيرات الحقل لا تحمل تعريف (array of)


RE: ما هى ميزة record ؟ - محمد عبد العزيز - 19-01-2016

السلام عليكم ورحمة الله
بديل Record هو Class
انصحك بمراجعة موضوع "البرمجة بالمنحنى للكائن OOP خطوة، خطوة" بالعدد الرابع وما بعده من مجلة دلفي للعرب

http://delphi4arab.net/forum/showthread.php?tid=2632