نظام الملفات على شكل قائمة في vb6. إضافة البيانات إلى ملف

شبابيك

الهدف من العمل: تعلم واستخدام عوامل لغة VB 6 للعمل مع الملفات أنواع مختلفة: الملفات المتسلسلة (النصية)، ملفات الوصول العشوائي، الملفات الثنائية. البحث واستخدام الأداة شائعالحوارلفتح الملفات وحفظها واختيار الخط واللون واستخدام الكائن الحافظةلتخزين أجزاء النص، باستخدام مثال إنشاء محرر نص بسيط.

أسئلة التحكم:

1. ما هي الطرق التي يمكنك من خلالها فتح ملف نصي؟ كيفية إغلاق النص وأي شيء آخر ملف مفتوح?

2. كيف تتم كتابة البيانات في ملف نصي مفتوح للكتابة؟ ما الفرق بين عبارات الكتابة والطباعة؟

3. كيفية قراءة البيانات من الفتح للقراءة ملف نصي؟ كيف يختلف مشغلو الإدخال وإدخال الخط عن بعضهم البعض؟ ما الوظيفة التي يمكن استخدامها لقراءة عدد محدد من الأحرف من ملف؟ كيف تقرأ جميع أحرف الملف؟

4. ما هو نوع مخصصالبيانات وكيفية استخدام هذا المفهوم عند العمل مع ملفات الوصول العشوائي ( راف)?

5. استخدام العوامل من الملف رافتتم قراءة السجلات أيضًا في الملف رافهل يتم كتابة إدخالات جديدة؟

6. لأي غرض يتم تحديد الفهرس واستخدامه عند العمل مع ملف؟ راف?

7. ما هي مميزات استخدام الملفات الثنائية؟ كيف يفتحون؟ كيف تتم القراءة من ملف ثنائي والكتابة إلى ملف ثنائي؟

8. كيفية استخدام عنصر التحكم شائعالحوارلتحميل محتويات ملف نصي في حقل نصي؟ كيف يمكنني استخدام نفس عنصر التحكم لحفظ النص المحرر في ملف نصي؟

9. كيفية استخدام عنصر التحكم شائعالحوارلتحميل محتويات الملف rtfفي الميدان ثريمربع الكتابة؟ كيفية استخدام نفس عنصر التحكم لحفظ النص المحرر في ملف rtf?

10. كيفية استخدام التحكم شائعالحوارلتغيير قيم معلمات الخط ولتغيير لون النص في النافذة مربع الكتابة(أو جزء محدد من النص في النافذة ثريمربع الكتابة)?

مثال 7.1. خذ بعين الاعتبار تطبيقًا يوضح الكتابة إلى ملف نصي (والقراءة من ملف نصي) "معلومات الموظف" - سطور، يحتوي كل منها على رقم التعريف والاسم الكامل وتاريخ الميلاد ومكان ميلاد الموظف. الصفوف تشكل جدولا، والذي شكل الشاشةسوف يحاكي 4 عناصر تحكم في Combo Box (الشكل 7.1)، مكونًا مصفوفة من كائنات Comb(i)، التي تكون قيمة خاصية Style الخاصة بها هي 1 – SimpleCombo.

حدد السطر المراد حذفه"، vbExclamation

مشط (ي).RemoveItem ط

'إدراج دخول جديدإلى الطاولة:

فرعي خاص mnuInsert_Click()

i% = Comb(0).ListIndex

اذا انا< 0 Then

MsgBox "تمييز السطر المراد إدراجه قبله" vbExclamation

Comb(0).AddItem InputBox("أدخل الرقم")، i

Comb(1).AddItem InputBox("أدخل اسمك")، i

Comb(2).AddItem InputBox("أدخل تاريخ ميلادك."), i

Comb(3).AddItem InputBox("أدخل مكان الميلاد."), i

‘ تغيير إدخال الجدول:

فرعي خاص mnuUpdate_Click()

i% = Comb(0).ListIndex

اذا انا< 0 Then

MsgBox "تمييز الصف المراد تعديله"، vbExclamation

Comb(0).List(i) = InputBox("أدخل الرقم"، Comb(0).List(i))

Comb(1).List(i) = InputBox("أدخل اسمك"، Comb(1).List(i))

Comb(2).List(i) = InputBox("أدخل تاريخ ميلادك.", Comb(2).List(i))

Comb(3).List(i) = InputBox("أدخل مكان الميلاد.", Comb(3).List(i))

‘ مسح الجدول بأكمله:

فرعي خاص mnuClear_Click()

‘ ملء جدول بالمعلومات من ملف نصي:

فرعي خاص mnuLoad_Click()

افتح "person.txt" للإدخال كرقم 1

الإدخال رقم 1، خدر، قوة المراقبة الدولية، bdate، كتلة

مشط (0).AddItem خدر

مشط (1).AddItem قوة المراقبة الدولية

مشط (2).AddItem bdate

مشط (3).كتلة AddItem

‘ كتابة معلومات الجدول إلى ملف نصي:

فرعي خاص mnuSave_Click()

N% = مشط(0).ListCount

افتح "person.txt" للإخراج رقم 1

لأني = 0 إلى N - 1

خدر = فال (مشط (0).قائمة (ط))

قوة المراقبة الدولية = مشط (1). القائمة (ط)

bdate = CDate(Comb(2).List(i))

الكتلة = مشط (3). القائمة (ط)

اكتب #1، خدر، قوة المراقبة الدولية، bdate، كتلة

"إيقاف التطبيق:

فرعي خاص mnuExit_Click()

مثال 7.2 . فكر في تطبيق يوضح استخدام عناصر التحكم شائعالحوارلفتح ملف وحفظه، ولتحديد الخط واللون، ولتحرير النص.

تنسيق الملف رسالة قصيرةسيتم تحميله في حقل النص (الحقل الأيسر في الشكل 7.2)، وتنسيق الملف رتف- في الميدان ثريمربع الكتابة(الهامش الأيمن في الشكل 7.2).

هدف

فصل

هدف

ملكية

هدف

قيمة العقار

"اللوحات العامة

حوار"

فتح/حفظ باسم علامة التبويب

علامة تبويب الخط

علامة التبويب اللون

لا يعرض الجدول خصائص أوامر القائمة الخط, لونو يحرر. يوجد أدناه رمز الإجراء أيضًا لأوامر القائمة فقط ملف (يفتح, يحفظو يحفظمثل). إن إنشاء التعليمات البرمجية لأوامر القائمة الأخرى هو موضوع المهمة الثانية من هذا العمل.

فرعي خاص mnuOpen_Click()

CommonDialog1.ShowOpen

F$ = CommonDialog1.FileName

إذا كان اليمين (F، 3) = "rtf" إذن

RichTextBox1.LoadFile F

ElseIf Right(F, 3) = "txt" إذن

افتح F للإدخال كرقم 1

S$ = الإدخال (N، 1)

فرعي خاص mnuSave_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

فرعي خاص mnuSaveAs_Click()

CommonDialog1.ShowSave

F$ = CommonDialog1.FileName

RichTextBox1.SaveFile F، rtfRTF

خلال هذا العمل، يجب على الطالب إكمال مهمتين.

التمرين 1. في عملية إكمال المهمة، يتقن الطلاب الإمكانات المتوفرة في VB 6 للعمل مع ملفات الوصول العشوائي ( سلاح الجو الملكي البريطانيعشوائيوصولملف).

بالنسبة لجدول قاعدة بيانات معين، يتم الإعلان عن نوع بيانات المستخدم، ويتم الإعلان عن متغير من هذا النوع (البرنامج التعليمي، الصفحات من 108 إلى 112)، ويتم تجميع الإجراءات التي تستخدم متغير نوع المستخدم وتصحيح أخطائها.

على وجه الخصوص، يتم تنفيذ إجراءات أوامر القائمة الكتابة إلى الملفسلاح الجو الملكي البريطانيو القراءة من الملفسلاح الجو الملكي البريطاني. كما في المثال 7.1، يتم استخدام مصفوفة من الكائنات لتحرير البيانات كومبوصندوقوالقائمة يحررمع خمسة أوامر القائمة الفرعية: أضف ملاحظة, حذف المدخلات, أدخل الإدخال, تحرير دخول, مسح الجدول.

الخيار 1.

قم بتعريف نوع بيانات مخصص لجدول "السيارة" (الجدول 7.1) لقاعدة بيانات "خدمة السيارات".

سيارة

سيارة

الأعطال

يوضح السطر السفلي من الجدول 7.1 أنواع الحقول.

الخيار 2.

قم بتعريف نوع بيانات مخصص لجدول "الأخطاء" (الجدول 7.2) لقاعدة بيانات "خدمة السيارات".

الأعطال

اسم

الأعطال

سعر

يوضح السطر السفلي من الجدول 7.2 أنواع الحقول.

باستخدام المثال التطبيق 7.1 كقالب، قم بتنظيم إدخال البيانات وتحريرها للجدول الموضح، وكتابة تلك البيانات إلى ملف وصول عشوائي، وقراءة البيانات من ملف وصول عشوائي. كما في المثال 7.1، يتم تنفيذ هذه الإجراءات أثناء تشغيل أوامر القائمة الموضحة في الشكل. 7.1.

المهمة 2. أثناء المهمة، يقوم الطلاب بإضافة ميزات جديدة إلى تطبيق المثال 2 الذي يسمح بعرض التطبيق كمحرر نص بسيط.

الخيار 1 شائعالحوارتنفيذ أوامر القائمة الخطو لون(مع القائمة الفرعية لون الشخصيةو لون الخلفية). باستخدام هذه الأوامر، يجب أن تكون قادرًا على تحديد الخط (اسمه ونمطه وحجمه) لجزء النص المحدد في النافذة ثريمربع الكتابةبالإضافة إلى تحديد لون أحرف الجزء المحدد واختيار لون خلفية النافذة بأكملها.

ملحوظة:عند إعداد كائن شائعالحوارلتحديد خط باستخدام الخاصية (مخصص)، تأكد من ضبط قيمة خاصية العلامات على 1 أو 2 أو 3 (انظر الدليل، صفحة 183).

الخيار 2. باستخدام عنصر التحكم شائعالحوارتنفيذ أوامر القائمة يحرر(القائمة الفرعية ينسخ, يقطعو معجون)، والغرض منه هو نسخأو حذفإلى الحافظة الخاصة بجزء النص المحدد، وكذلك إدراجإلى منطقة النص المحددة لمحتويات الحافظة.

ملحوظة:إلى الحافظة (object الحافظة) يمكنك استخدام طريقتي SetText وGetText:

الحافظة. SetText RichTextBox1.SelText

RichTextBox1.SelText = Clipboard. الحصول على النص

يجب على كل برنامج حفظ البيانات على القرص وقراءتها من القرص. يعد ذلك ضروريًا، على سبيل المثال، لحفظ إعدادات البرنامج، فمن غير المرجح أن يحب المستخدم البرنامج، والذي يجب تهيئته مرة أخرى في المرة التالية التي يتم فيها تشغيله.

في هذه المقالة سنتحدثحول العمل مع الملفات النصية باستخدام Visual Basic.

واصف الملف

للعمل مع الملفات نظام التشغيليستخدم قنوات الإدخال/الإخراج، أي. كل ملف مفتوح له رقمه الخاص.

في Visual Basic هناك وظيفة ملف مجاني، والذي يقوم بإرجاع رقم القناة المجانية التي يمكن استخدامها للعمل مع الملف. إذا لم تكن هناك قنوات مجانية، يحدث خطأ.

ملف مجاني[(رقم النطاق) ]

رقم النطاق-معلمة اختيارية تسمح لك بتحديد نطاق قيم القنوات المجانية إذا رقم النطاق= 0 (افتراضي)، فسيتم إرجاع رقم القناة من النطاق 1 - 255، وإذا كان 1، فمن النطاق 256 - 511.

MyFile = FreeFile "تم تعيين قناة مجانية للمتغير MyFile ويمكن الآن استخدامه للعمل مع الملفات

العمل مع الملفات النصية

في أغلب الأحيان تواجه ملفات نصية. تتكون الملفات النصية من مجموعة أحرف ASCII (الكود القياسي الأمريكي لتبادل المعلومات).

قبل البدء في كتابة/قراءة البيانات، يجب فتح الملف، ويتم ذلك باستخدام عامل التشغيل يفتح (اسم الملف) كما ل #رقم الملف، أين:

مدخل- فتح الملف للقراءة، إذا كان الملف غير موجود، يحدث خطأ؛

انتاج |- للكتابة، إذا كان الملف غير موجود، سيتم إنشاؤه، وإذا كان الملف موجودا، فسيتم الكتابة فوقه؛

ألحق- بالنسبة للإضافة، إذا كان الملف غير موجود سيتم إنشاؤه، وإذا كان الملف موجودا، فسيتم إضافة البيانات إلى نهاية الملف.

يمكن قراءة الملفات النصية بطريقتين: قراءة حرف بحرف، ولهذا استخدم الوظيفة مدخل(Number_of_characters_read, #رقم الملف) سطرا سطرا، يتم استخدام الوظيفة لهذا الغرض خط المدخلات #رقم الملف, أين_القراءة.

خافت ملفي

خافت S كسلسلة "متغير لتخزين بيانات القراءة

MyFile = FreeFile

افتح ("C:\TEST.txt") للإدخال باسم #MyFile

إدخال الخط #MyFile، S "اقرأ السطر الأول من الملف TEST.TXT إلى المتغير S

خافت ملفي "قم بتعريف متغير لملف مجاني

خافت ط كعدد صحيح "متغير للحلقة

خافت tS كسلسلة "متغير لقراءة السلاسل

خافت S كسلسلة "متغير لتخزين البيانات النهائية

MyFile = FreeFile "تخصيص قناة مجانية للعمل مع الملفات

"افتح الملف TEST.TXT للقراءة

لأني = 1 إلى 5

إدخال السطر #MyFile، tS "قراءة الملف TEST.TXT سطراً سطراً

إذا كنت => 5 ثم S = tS "إذا كان السطر الخامس، فقم بتخزينه في المتغير S

بعدها انا

أغلق #MyFile "أغلق الملف

Dim MyFile "قم بتعريف متغير لملف مجاني

Dim S As String "متغير لتخزين بيانات القراءة

MyFile = FreeFile "تخصيص قناة مجانية للعمل مع الملفات

افتح ("C:\TEST.txt") للإدخال باسم #MyFile "افتح الملف TEST.TXT للقراءة

S = الإدخال$(سجل(1)، 1) "اقرأ الملف بأكمله في المتغير S

أغلق #MyFile "أغلق الملف

هناك عوامل للكتابة إلى ملف مطبعة #رقم الملف, بياناتو يكتب #رقم الملف, بيانات. والفرق الوحيد بين هؤلاء المشغلين هو ذلك يكتبيكتب البيانات في علامات الاقتباس، و مطبعةبدون اقتباسات.

سيتم إنشاء التعليمات البرمجية التالية أدناه على محرك الأقراص C:\ ملف جديد TEST.TXT واكتب فيه سطرين، الأول بدون علامات الاقتباس، والثاني بين علامات الاقتباس:

خافت ملفي "قم بتعريف متغير لملف مجاني

MyFile = FreeFile "تخصيص قناة مجانية للعمل مع الملفات

افتح ("C:\TEST.txt") للإخراج باسم #MyFile "افتح الملف TEST.TXT للكتابة

طباعة #MyFile، "تم كتابة هذا السطر بواسطة عامل الطباعة، وهو بدون علامات اقتباس..."

اكتب #MyFile، "تم كتابة هذا السطر بواسطة عامل الكتابة، وهو موجود بين علامتي اقتباس..."

أغلق #MyFile "أغلق الملف

هذا كل شئ. كما كنت قد فهمت بالفعل، يتم استخدام عامل التشغيل لإغلاق الملف يغلق #رقم الملف، حيث، # رقم الملفليس من الضروري الإشارة.

المقالة خام بعض الشيء، لكنها ستكون مفيدة للمبرمجين المبتدئين. في المرة القادمة سأتحدث عن العمل مع الملفات الثنائية.

8. حفظ المعلومات وقراءتها

للتأكد من عدم فقدان جميع البيانات التي تم إنشاؤها في الذاكرة بعد اكتمال البرنامج، يجب أن تكون قادرًا على حفظ المعلومات على محرك الأقراص الثابتة لديك. وإلا فإن جميع المعلومات سوف تختفي دون أن يترك أثرا. يمكن تخزين البيانات وقراءتها بعدة طرق. للعمل مع معلومات ذات أحجام وتنسيقات مختلفة، يمكنك استخدام الملفات الثنائية والنصية. لتخزين كميات صغيرة من المعلومات، يمكنك استخدام سجل Windows. وبالنسبة للمهام الأكثر تعقيدًا، فمن الحكمة استخدام قواعد البيانات.

8.1. فتح الملفات باستخدام عامل التشغيل "يفتح "

الملف عبارة عن منطقة محددة لأي جهاز تخزين خارجي. البيانات "تعيش" في ذاكرة الكمبيوتر، والملفات تعيش على القرص الصلب. البرنامج لا يعمل مع الملفات مباشرة، بل يستخدم نظام التشغيل كوسيط.

هناك نوعان من أسماء الملفات: كامل - بالإضافة إلى اسم الملف، تتم الإشارة أيضًا إلى موقع الملف على الوسائط الخارجية (على سبيل المثال، "C:\Program Files\Microsoft Visual Studio\VB98\VB 6.EXE" ) وباختصار - اسم الملف فقط (VB 6.EXE ). إذا لم يتم تحديد موقع الملف، فسيتم البحث عنه في المجلد الحالي، بشكل افتراضي المجلد الذي يوجد به تطبيقك. يتكون اسم الملف المباشر من جزأين: اسم الملف الفريد الفعلي وامتداده. يحدد الاسم نفسه الملف، ويشير الامتداد عادةً إلى تنسيق الملف أو البرنامج الذي تم إنشاؤه بواسطته.

قبل البدء في العمل مع الملف، يجب عليك أن تسأل نظام التشغيل المؤشر (واصف) ملف. للحصول عليه، استخدم وظيفة "FreeFile". ثم، باستخدام عامل التشغيل "فتح"، يرتبط هذا المؤشر بالملف المطلوب. فقط بعد ذلك سيكون البرنامج قادرًا على العمل معه. بناء جملة فتح الملف كما يلي:

"احصل على مؤشر ملف مجاني وقم بتعيينه لمتغير."

FileHandle% = FreeFile

' افتح الملف

افتح مسار الملف_

كـ [#]FileHandle%

...(العمل مع ملف)

أغلق [#]FileHandle

· FileHandle % - متغير يقوم بتخزين مؤشر الملف؛

· FreeFile – اسم الوظيفة التي تقوم بإرجاع مؤشر الملف؛

· مفتوح - اسم المشغل؛

· FilePath - اسم الملف الكامل؛

· For - كلمة أساسية متبوعة بوصف لوضع الوصول إلى الملف؛

· الوضع - وضع الوصول إلى الملفات (انظر الجدول 15)؛

الجدول 15

أوضاع الوصول إلى الملفات

أوضاع الوصول

وصف

ألحق

إلحاق البيانات بنهاية ملف نصي موجود. إذا كان الملف غير موجود، سيتم إنشاؤه

الثنائية

فتح ملف في الوضع الثنائي، أي. كمجموعة من البايتات. إذا كان الملف غير موجود ولكن سيتم إنشاؤه

مدخل

فتح ملف للقراءة بتنسيق نصي

انتاج |

فتح ملف لكتابة ملف نصي. في هذه الحالة، سيتم حذف كافة المعلومات القديمة. إذا كان الملف غير موجود ولكن سيتم إنشاؤه

عشوائي

فتح ملف في وضع الوصول العشوائي. يستخدم هذا الوضع للعمل مع السجلات البسيطة. إذا كان الملف غير موجود ولكن سيتم إنشاؤه

· الوصول - كلمة أساسية اختيارية متبوعة بوصف لنوع الوصول؛

· AccessType – وصف نوع الوصول:

· قراءة القراءة؛

· اكتب – سجل؛

· قراءة كتابة - القراءة والكتابة.

ملحوظة

مع وضعي الوصول للإلحاق والإخراج، يتوفر فقط نوع الوصول للكتابة، مع الإدخال للقراءة فقط، ومع ثنائي وعشوائي، تتوفر جميع أنواع الوصول الثلاثة.

· LockType هو معلمة اختيارية تحدد ما إذا كان بإمكان البرامج الأخرى استخدام هذا الملف أثناء عمل برنامجك معه. ويرتبط عادة بالعمل على الشبكة (انظر الجدول 16).

الجدول 16

القيم المحتملة لمعلمة LockType

معنى

وصف

مشترك

سيكون لجميع المستخدمين الذين لديهم الحقوق اللازمة حق الوصول الكامل إلى الملف

قفل القراءة

قراءة الملف محظورة، ولكن الكتابة مسموحة

قفل الكتابة

الكتابة إلى الملف محظورة، ولكن القراءة مسموحة

قفل القراءة والكتابة

يحظر القراءة والكتابة فيه

· كما هي الكلمة الأساسية متبوعة بمؤشر الملف.

· # هو رمز يشير إلى أن القيمة التي تليها هي مؤشر ملف.

· Len هي كلمة أساسية اختيارية يجب أن يتبعها معلمة تحدد طول الإدخال.

· CharInBuffer % - طول السجل للملف المفتوح في وضع الوصول العشوائي (عشوائي).

· Close عبارة عن عبارة تغلق الملف المرتبط بالمقبض المحدد.

من المهم إغلاق الملف عند الانتهاء من العمل معه. تقوم عبارة "إغلاق" بتحرير مؤشر الملف ومنطقة الذاكرة المقترنة.

عند العمل مع ملف، أي عند القراءة منه، فإن تحديد نهاية الملف مهم جدًا. يمكن تعريفه باستخدام وظيفة EOF (نهاية الملف):

EOF (مقبض الملف)

· EOF - اسم الوظيفة؛

· FileHandle هو مؤشر إلى الملف الذي يتم تحديد نهايته.

تقوم الدالة بإرجاع True إذا تم الوصول إلى نهاية الملف، وإلا فإنها ترجع False.

8.2. القراءة والكتابة في ملف نصي

يتم فتح الملف النصي في وضع الوصول "الإدخال" أو "الإخراج" أو "الإلحاق" (انظر الجدول 15). تكمن خصوصية هذا الوضع في أنه يعمل فقط مع أحرف محددة قابلة للطباعة. لا فائدة من العمل مع رموز الخدمة.

لتسجيل المعلومات، استخدم عاملي التشغيل "طباعة" و"كتابة"، ويكون تركيبهما كما يلي:

طباعة #FileHandle%، VarBuffer [;]

اكتب #FileHandle%، VarBuffer [;]

· طباعة / كتابة - الكلمات الرئيسية للمشغل.

· #FileHandle % - مؤشر إلى الملف الذي سيتم وضع المعلومات فيه.

· VarBuffer – القيمة التي سيتم كتابتها في الملف.

· ; - معلمة اختيارية تستخدم عند الكتابة إلى ملف نصي، تعني أنه سيتم كتابة القيمة التالية على نفس السطر، وإذا كانت غائبة، إلى السطر التالي.

لقراءة المعلومات من ملف، استخدم عاملي التشغيل "الإدخال" و"إدخال الخط". بناء الجملة مشابه لبعضها البعض:

إدخال السطر #FileHandle%، VarBuffer

أدخل #FileHandle٪، VarBuffer

· إدخال / إدخال الخط - الكلمات الرئيسية للمشغل.

· #FileHandle % - مؤشر إلى الملف الذي سيتم قراءة المعلومات منه.

· VarBuffer – متغير سيتم قراءة المعلومات فيه.

الفرق بين مشغلي "إدخال الخط" و"الإدخال" هو أن الأول مخصص فقط للملفات النصية، والثاني - لأي منها. في حالة الملفات النصية، يقرأ "الإدخال" البيانات الموجودة على سطر واحد حتى المحدد الأول (بالنسبة للبيانات النصية، يكون الفاصل "،" (فاصلة)، وبالنسبة للبيانات الرقمية - "" (مسافة) و"،") ، و"إدخال الخط" يقرأ السطر بأكمله مرة واحدة، متجاهلاً أي محددات.

ملحوظة

ليس لدى Visual Basic أي وسيلة للتحكم في تنسيق الملفات التي تم إنشاؤها مسبقًا. لذلك، يمكن قراءة الرمز "2" على أنه الرقم المقابل والعكس صحيح.

8.3. العمل مع الملفات الثنائية

الملفات مفتوحة في تنسيق ثنائيعامل التشغيل "فتح" في الوضع "الثنائي". الميزة المميزة لهذا الوضع هي أن العمل مع الملف يركز حصريًا على وحدات بايت محددة. بما أن Visual Basic يمكنه معالجة الموقع المطلوب في الملف مباشرةً، فإن هذا الوضع يُسمى أيضًا − وضع الوصول المباشر. ميزة أخرى لهذا الوضع هي القدرة على كتابة وقراءة المعلومات في أجزاء مختلفة من الملف في وقت واحد دون إعادة فتحه. تتم الكتابة إلى ملف مفتوح في الوضع الثنائي باستخدام بناء الجملة التالي:

ضع #FileHandle%،، NameVar

· وضع - اسم مشغل تسجيل المعلومات.

· RecNumber – رقم البايت للملف الذي سيتم كتابة المعلومات فيه (معلمة اختيارية).

· NameVar هو متغير سيتم كتابة محتوياته في الملف.

تتم قراءة المعلومات من ملف في الوضع الثنائي باستخدام عامل التشغيل التالي:

احصل على #FileHandle%،، NameVar

· الحصول على – اسم مشغل تسجيل المعلومات.

· FileHandle٪ - مقبض الملف.

· RecNumber – رقم البايت للملف الذي سيتم قراءة المعلومات منه (معلمة اختيارية).

· NameVar – اسم المتغير الذي سيتم وضع معلومات القراءة فيه.

نظرًا لأن الوضع الثنائي يركز على بايتات المعلومات، عند القراءة من ملف، يجب أن يكون لمتغير المخزن المؤقت نوع محدد بدقة: إما "بايت"، ثم سيتم قراءة القيمة الرقمية للبايت، أو حرف ذو طول ثابت من حرف واحد، ستتم قراءة البايت كحرف، ANSI، الذي يتوافق رمزه مع حجم البايت. يمكن أن تكون هذه الشخصية أيضًا حرف تحكم، وهو ما لا يمكن تحقيقه في حالة الملفات النصية.

ملحوظة

في حالة عدم وجود المعلمة "RecNumber"، ستتم كتابة المعلومات أو قراءتها في البايت التالي من الملف بعد البايت الذي تم العمل به مسبقًا.

8.4. التلاعب بالرسومات

يمكنك أيضًا حفظ واستخراج الصور الرسومية من الملفات. لاستخراج صورة من صورة نقطية أو ملف رمز وتعيينها إلى الخاصية "صورة" لعناصر التحكم "PictureBox" و"الصورة"، استخدم وظيفة "LoadPicture()" بالصيغة التالية:

ImageCtrl.Picture = LoadPicture(FilePath)

· ImageCtrl – اسم عنصر تحكم نافذة الصورة، أو عنصر تحكم الصورة، أو النموذج؛

· LoadPicture - اسم الوظيفة؛

· FilePath - اسم الملف الكامل.

SavePicture ImageCtrl .صورة، FilePath

· SavePicture - اسم المشغل؛

· ImageCtrl – اسم عنصر تحكم نافذة الصورة، أو عنصر تحكم الصورة، أو النموذج؛

· الصورة - اسم خاصية الكائن المسؤولة عن الصورة؛

· FilePath – الاسم الكامل للملف مع الإشارة إلى موقعه على القرص.

8.5. العمل مع البيانات في التسجيل

يمكن استخدام سجل Windows لتخزين أجزاء صغيرة من المعلومات بتنسيق أحرف. يحتوي Visual Basic على أربعة إجراءات يمكنك استخدامها للوصول إليه. إنها سهلة الاستخدام للغاية، ولكن لها عيبًا رئيسيًا واحدًا: لا يمكنك الوصول إلى البيانات إلا من خلال مفتاح تسجيل محدد: "MyComputer\HKEY_CURRENT_USER\Software\VB and VBA Program Settings". للوصول إلى أقسام التسجيل الأخرى، تحتاج إلى استخدام الوظائف الخاصة "Win ​​32 API".

للحصول على قيمة الإعداد من قسم Visual Basic في سجل Windows، تحتاج إلى استخدام الوظيفة التالية:

MyString = GetSetting(VBKeyName، القسم، المفتاح [، الافتراضي])

· MyString – سلسلة لتخزين القيمة التي ترجعها الدالة؛

· GetSetting - اسم الوظيفة.

· VBKeyName هي قيمة سلسلة تمثل اسم المفتاح الفرعي VB/VBA الداخلي.

· المفتاح هو قيمة سلسلة تمثل اسم المعلمة في القسم.

· الافتراضي - وسيطة اختيارية، سيتم إرجاع قيمتها في حالة وجود خطأ (معلمة مفقودة).

لتخزين قيمة في سجل ويندوز، استخدم العبارة التالية:

SaveSetting VBKeyName، القسم، المفتاح، MyString

· SaveSetting - اسم المشغل.

· MyString هو متغير سلسلة سيتم وضع القيمة التي تم العثور عليها فيها.

للحصول على مصفوفة من السجل تحتوي على كافة قيم المعلمات من مفتاح فرعي محدد، استخدم الوظيفة التالية:

MyVariant = SetAllSettings(VBKeyName، القسم)

· MyVariant عبارة عن مجموعة من القيم من النوع "Variant" التي يتم إرجاعها بواسطة الوظيفة.

· SetAllSettings – اسم الوظيفة.

· القسم - قيمة سلسلة تمثل قسمًا أو قسمًا فرعيًا لتطبيق معين.

لإزالة قسم كامل من المعلمات، استخدم عبارة بالصيغة التالية:

حذف إعداد VBKeyName، القسم، المفتاح

· حذف الإعداد - اسم المشغل.

أسئلة الاختبار للاختبار الذاتي

  1. كيف يمكنك تخزين بعض المعلومات على المدى الطويل؟
  2. ما هو الملف؟
  3. ما هي أسماء الملفات التي تعرفها؟
  4. أعط بناء جملة عامل التشغيل "Open". اشرح الغرض من معلماته.
  5. كيف يمكن لتطبيقات متعددة مشاركة الوصول إلى ملف واحد في نفس الوقت؟
  6. كيفية تحديد أن المعلومات الموجودة في الملف قد استنفدت؟
  7. لماذا يوصى بإغلاقه بعد العمل مع ملف؟
  8. ما هو الفرق بين أوضاع النص والملفات الثنائية في نظرك؟
  9. كيف تتم قراءة البيانات وكتابتها في وضع الملف النصي؟
  10. كيف تتم قراءة البيانات وكتابتها في وضع الملف الثنائي؟
  11. ما الفرق بين عاملي "الطباعة" و"الكتابة" عند العمل مع الملفات؟
  12. ما الفرق بين مشغلي "الإدخال" و"إدخال الخط" عند العمل مع الملفات؟
  13. كيف يمكنك العمل مع البيانات الرسومية؟
  14. ما هي المبادئ الأساسية للعمل مع سجل ويندوز؟



قمة