بسم الله
من فضلكم كيف أستخدم الملفات العشوائيه فى حفظ البيانات؟
وهل يمكن تخليقها فى الRUN TIME
بسم الله
من فضلكم كيف أستخدم الملفات العشوائيه فى حفظ البيانات؟
وهل يمكن تخليقها فى الRUN TIME
السلام عليكم:
الملفات العشوائية:
هي ملفات خاصة مؤلفة من عدة سجلات، وكل سجل مؤلف من عدة حقول، فمثلاً يمكننا تخزين ملف عشوائي خاص بجدول الأصدقاء كما يلي:
الميلاد الكنية الرقم الاسم
1976 المصري 12 محمد
1977 السباعي 20 حسام
إن مفهوم الحرف والسطر غير موجود في الملفات العشوائية، وإنما تتم قراءة كل سجل على حدة.
عند التعامل مع الملفات العشوائية نحتاج - في أغلب الأحيان- إلى استعمال السجلات، والسجل هو عبارة عن متحول من نوع خاص يحوي بداخله عدة حجرات تخزين ومن عدة أنواع /نص , رقم , تاريخ/.
ويتم تعريف السجلات بالشكل:
Public Type varname fieldname1 As type fieldname2 As type . . . End Type [code] مثال: عرف السجل التالي في الوحدة النمطية Module: [code] Public Type person Fname as string*20 Lname as string*20 Number as integer Birthday as date ‘dd/mm/yyyy حقل من نمط تاريخ End Type
لكي نستطيع التعامل مع هذا السجل نقوم بتعريف متحول من نوع سجل كما يلي :
Public per As person
وبعدها نستخدم المتحول Per أينما كنا للدلالة على السجل Person.
إدخال وقراءة السجل:
تتم عميلة إدخال قيم السجل كما يلي :
RecordVariable.FieldName = Value ومن أجل مثالنا السابق نكتب: Per.Fname=”Mmk” per.Birthday=15/1/1976 وغالباً تستخدم أداة TextBox لإدخال قيم السجل على الشكل: Per.Fname=Text1.Text Per.number=Val(Text2.Text)
قراءة قيمة السجل تتم بنفس الطريقة:
مثال:
Text1.Text=per.Fname
Text2.Text=per.lname
الملفات العشوائية:
قبل التعامل مع الملفات العشوائية يجب أولاً تعريف السجل في الموديول ومن ثم فتح الملف العشوائي باستخدام التعليمة
Open “FileName” For Random As #1 Len=Len(Record Variable)
حيث:
FileName: يمثل اسم الملف مع مساره وفي حال لم يكن الملف موجوداً على القرص فسيتم إنشاؤه.
Record Variable: يمثل المتحول من نوع سجل وهو المتحول المصرح عنه في الـ Module أيضاً.
التخزين في نهاية الملف:
بعد إعطاء القيم لحقول السجل يمكن تخزين هذا السجل في نهاية الملف العشوائي باستخدام التعليمة Put
كما يلي:
Put #1,(lof(1)/len(per))+1,per
أي ضع في الملف ذو الرقم 1 وفي الموقع/السجل/ الأخير قيمة المتحول السجلي Per.
حيث:
Lof(1) : يمثل حجم الملف مقدراً بالبايت.
Len : يمثل حجم السجل الواحد.
Lof(1)/Len(Per) : يمثل عدد السجلات في الملف، وعند إضافة واحد له فإن المؤشر سيتوقف في نهاية الملف مستعداً لإضافة سجل جديد.
قراءة سجل ما من الملف:
لقراءة السجل الخامس من الملف نستخدم تعليمة Get على الشكل: Get # 1, 5 , per لقراءة كافة السجلات الموجودة في الملف نستخدم الشيفرة التالية: For i=1 to Lof(1)/Len(Per) Get #1 , I , per مجموعة تعليمات Next i وبطريقة أخرى: i=0 Do While Not Eof(1) i=i+1 Get #1 ,i , P مجموعة تعليمات Loop
أتمنى أن يحقق هذا مطلوبك.
شكرا جزيلا وربنا يزيدك
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…