تم ارسال
الموضوع في 08 ديسمبر 2000 11:09 AM
بسم الله الرحمن
الرحيم
ساحاول وضع ملف عشوائي للبيانات بصورة مبسطة مع زيادة امكانياتها
على مراحل وفي دروس متعاقبة انشاء الله
وكذلك وضع امكانية الترتيب تصاعديا ام تنازليا وحسب الحقل المحدد.
في هذه المرحلة تحتاج الى فورم واحد فقط واداتين صندوق نص واربعة
ازرار اوامر واداة عنوان واحد
اذا كان برنامجك يتكون من فورم واحد فقط ضع العيارات التالية في
قسم التصريحات العامة من الفورم
واذا كانت تحتوي اكثر من فورم اضف ملف Module الى المشروع وضع
العبارات التالية فيها لتتمكن من استدعاءها من جميع النوافذ ولا
تكتب كلمة Private
code:
Private Type AType
name As String * 40
city As String * 40
End Type
Dim a As AType
Dim FileNum As Integer
Dim CurrentRecord As Long
Dim LastRecord As Long
في هذا الكود اعلننا عن نوع المتحولات في ملف البيانات العشوائي.
وكما هو واضح فكل سجل يتكون من حقلين من نوع تكست بطول ثابت 40
محرف
واعلننا عن المتغيرات اللازمة وهي رقم الملف وعدد السجلات والسجل
الحالي
والمتحول a ينتمي للنوع AType وبما انه متكون عنصرين فان المتحول a
ايضا يحما نفس الصفات وبنفس الاسماء
code:
Private Sub Form_Load()
FileNum = FreeFile
Open App.Path + "\mydata.dat" For Random As FileNum Len = Len(a)
LastRecord = FileLen(App.Path + "\mydata.dat") / Len(a)
If LastRecord > 0 Then
CurrentRecord = 1
ShowRecord
End If
Label1.Caption = Str(CurrentRecord) + " / " + Str(LastRecord)
End Sub
في حدث التحميل للفورم قمنا بفتح الملف وفحص عدد السجلات واذا كانت
اكثر من واحد يستدعى الاجراء ShowRecord ليعرض محتوياتها في صندوق
النص رقم1 ورقم 2
code:
Private Sub Command1_Click()
If LastRecord > 0 Then
CurrentRecord = 1
ShowRecord
Else
Beep
MsgBox "لا يوجد سجلات"
End If
End Sub
في هذا الزر نقوم بفحص عدد السجلات فاذا كانت اكثر من صفر نتحول
الى السجل الاول ونستدعي الاجراء ShowRecord لاظهار البيانات
code:
Private Sub Command2_Click()
If LastRecord > 0 Then
If CurrentRecord > 1 Then
CurrentRecord = CurrentRecord - 1
ShowRecord
Else
Beep
MsgBox "وصل السجلات الى البداية"
End If
Else
Beep
MsgBox "لا يوجد سجلات"
End If
End Sub
في هذا الزر نقوم بفحص عدد السجلات فاذا كانت صفر نظهر رسالة تبين
للمستخدم عدم وجود سجلات واذا كان اكبر من واحد نتحول سجل واحد الى
الخلف ونستدعي الاجراء ShowRecord لاظهار البيانات
code:
Private Sub Command3_Click()
If LastRecord > 0 Then
If CurrentRecord < LastRecord Then
CurrentRecord = CurrentRecord + 1
ShowRecord
Else
Beep
MsgBox "وصل السجلات الى النهاية"
End If
Else
Beep
MsgBox "لا يوجد سجلات"
End If
End Sub
في هذا الزر نقوم بفحص عدد السجلات فاذا كانت صفر نظهر رسالة تبين
للمستخدم عدم وجود سجلات واذا كان اقل من عدد مجموع السجلات نتحول
سجل واحد الى الامام ونستدعي الاجراء ShowRecord لاظهار البيانات
code:
Private Sub Command4_Click()
If LastRecord > 0 Then
CurrentRecord = LastRecord
ShowRecord
Else
Beep
MsgBox "لا يوجد سجلات"
End If
End Sub
في هذا الزر نقوم بفحص عدد السجلات فاذا كانت اكثر من صفر نتحول
الى السجل الاخير ونستدعي الاجراء ShowRecord لاظهار البيانات
code:
Public Sub ShowRecord()
Get #FileNum, CurrentRecord, a
Text1.Text = Trim(a.name)
Text2.Text = Trim(a.city)
Label1.Caption = Str(CurrentRecord) + " / " + Str(LastRecord)
End Sub
هذا الاجراء يقوم بالحصول على حقول السجل الحالي واسناد قيمها الى
صناديق النصوص المحددة لكل واحد منها واظهار حالة السجلات في اداة
العنوان
اصبح الموضوع طويلا ولكن كان لابد من ذلك ليكون مفهوما اكثر
وفي الدرس القادم سنضيف امكانية اضافة وتعديل وحذف السجلات انشاء
الله
فرهاد حمدي
farhad_hamdi@yahoo.com
التسامح انناء نبيل مثل سنبلة قمح ممتلئة
[This message has been edited by فرهاد حمدي (edited
09-12-2000).]
المشاركات 285 | من
كردستان العراق- دهوك | سجل في: اغسطس 2000 | IP:
تم رصد IP |