ما هى ميزة record ؟
#1
Question 
بسم الله الرحمن الرحيم
ممكن أعرف ما هى ميزة record انا بعرف استخدمة ولكن اريد اعرف ما هى مميزاتة وهل يوجد بديل يقوم بعملة ام لا ....؟
> مبرمج مبتدئ < سبحان الله بحمده... سبحان الله العظيم
الرد
#2
(18-01-2016, 04:20 PM)karika2 كتب : بسم الله الرحمن الرحيم
ممكن أعرف ما هى ميزة record انا بعرف استخدمة ولكن اريد اعرف ما هى مميزاتة وهل يوجد بديل يقوم بعملة ام لا ....؟
record أو الهياكل
في أغلب الأحيان تكون بنية لشيء ما
بنسبة لسؤالك ما هي ميزة record
كمثال عندنا إعدادات ونريد حفظها في ملف وفي وقت آخر سنحتاج تلك الإعدادات لإعادة معالجتها وحفظها مرة أخرى
هنا بإستعمال record ستكون العملية سهلة في الحفظ و تحميل.
بنسبة لسؤالك هل يوجد بديل يقوم بعملة ام لا
نعم يوجد بديل.
في برمجة دائما المسالك كثيرة لكن في الاخير الهدف واحد
سبحان الله وبحمده سبحان الله العظيم
الرد
#3
بارك الله فيك أخى الكريم ,
حاولت أبحث عن أمثله لها ولكن لم أجد ولكن المعلومة وصلت أخى شكراّ لك مرة اخرى Smile
> مبرمج مبتدئ < سبحان الله بحمده... سبحان الله العظيم
الرد
#4
للفائدة أكثر
هذا مثال توضيحي

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)
سبحان الله وبحمده سبحان الله العظيم
الرد
#5
السلام عليكم ورحمة الله
بديل Record هو Class
انصحك بمراجعة موضوع "البرمجة بالمنحنى للكائن OOP خطوة، خطوة" بالعدد الرابع وما بعده من مجلة دلفي للعرب

http://delphi4arab.net/forum/showthread.php?tid=2632
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد


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


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